2017-06-20 71 views
0

假設我在Excel中有一個包含字母的10行(單元格A1到A10)的向量,並且我想提取字母「X」的出現次數。影響自動填充列到VBA中變量的總和

這是一個最小的工作實施例,顯示了溶液我建議來解決這個問題:

Sub Macro1() 

    Range("B1").Activate 
    ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""X"",1,0)" 
    Selection.AutoFill Destination:=Range("B1:B10"), Type:=xlFillDefault 

    Range("B11").Activate 
    ActiveCell.FormulaR1C1 = "=SUM(R[-10]C:R[-1]C)" 

End Sub 

基本上,我使用其中在單元格的Bi的結果,條件是1,如果單元格的內容Ai是「X」或0。我做了一個自動填充來測試所有的行i = 1到10,然後我總結了結果。

我想要的是自動填充結果不會出現,也就是說我想將自動填充結果影響到一個變量,例如,不會顯示在表單上,​​然後總結所有單元格的內容(由自動填充),並只顯示最終結果(總和)。

有沒有辦法做到這一點?所有建議都歡迎。謝謝。

+2

爲什麼不使用COUNTIF():'= COUNTIF(A1:A10, 「X」)'? –

+0

@ScottCraner我是VBA的新手,我不知道這個功能。此外,這是我真正問題的簡化版本。 – Likely

+0

@ScottCraner我真正想要的不是計算「X」的出現次數。相反,假設你有另一個列(例如B),它包含價格(相對於列A的內容:單元格A1的內容具有價格B1 ...),我想要的是提取總成本元素「X」。 – Likely

回答

0

爲什麼不使用COUNTIF():=COUNTIF(A1:A10,"X")

但據代碼:

Sub Macro1()   

    Range("B11").FormulaR1C1 = "=COUNTIF(R[-10]C[-1]:R[-1]C[-1],""X"")" 

End Sub