2017-06-20 70 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