Ошибка формулы Excel на VBA - PullRequest
       13

Ошибка формулы Excel на VBA

4 голосов
/ 27 марта 2012

Я пытаюсь поместить следующий код в VBA. В идеале я хочу применить формулу к столбцу H, когда столбец A пуст. Любая помощь будет оценена. endPosition - это переменная, которая содержит значение строки #, где столбец A пуст.

ActiveCell.Formula = "=SUM(N(FREQUENCY(R[endPosition]C[-1]:R[endPosition]C[-1],R[endPosition]C[-1]:R[endPosition]C[-1])>0))"

Эта формула применяется в конце, когда цикл видит пустую ячейку:

    Range("A1").Select
    beginPosition = 2 'Start from row number 2
    Do While IsEmpty(ActiveCell.Offset(1, 0)) = False
    ActiveCell.Offset(1, 0).Select
    endPosition = ActiveCell.Row
    Loop
    endPosition = endPosition + 1
    Range("H15").Select
    ActiveCell.Formula = "=SUM(N(FREQUENCY(R[endPosition]C[-1]:R[endPosition]C[-1],R[endPosition]C[-1]:R[endPosition]C[-1])>0))"

1 Ответ

5 голосов
/ 27 марта 2012

Предполагая, что формула верна, если endPosition является переменной, вы не должны включать ее в строку:

ActiveCell.FormulaR1C1 = "=SUM(N(FREQUENCY(R[" & endPosition & _
     "]C[-1]:R[" & endPosition & "]C[-1],R[" & endPosition & _
     "]C[-1]:R[" & endPosition & "]C[-1])>0))"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...