4
votes

I am trying to put the following code into VBA. What I ideally want is to apply the formula to the column H when column A is empty. Any help would be appreciated. endPosition is a variable which holds the row# value where column A is empty.

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

This formula is applied at the end when the loop sees a blank cell:

    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
I know that this is not the right way. But I am trying to learn Excel and hence the stupid formula. - rvphx
Please post the full error message. Thank you. - mechanical_meat
The error that I get is "Run-time error '1004': Application-defined or object-defined error" - rvphx
When exactly is this line of code called? - Francis P

1 Answers

6
votes

Assuming the formula is correct, if endPosition is a variable, you should not include it in the string:

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