2012-03-27 61 views
4

我想将下面的代码放入VBA中。理想情况下,当列A为空时,将公式应用于H列。任何帮助,将不胜感激。 endPosition是一个变量,它保存列A为空的行#值。VBA上的Excel公式错误

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))" 
+0

我知道这不是正确的方法。但我正在努力学习Excel,因此也是愚蠢的公式。 – rvphx 2012-03-27 14:52:19

+0

请发布完整的错误消息。谢谢。 – bernie 2012-03-27 14:52:26

+0

我得到的错误是“运行时错误'1004':应用程序定义的或对象定义的错误” – rvphx 2012-03-27 14:53:39

回答

5

假设式是正确的,如果endPosition是一个变量,则应该不包括它在字符串中:

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

解决了错误。我将修复此公式的位置以正确工作。谢谢! – rvphx 2012-03-27 15:02:59