2012-03-27 107 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