vba将标准传递给变量中的countif

时间:2013-02-25 21:38:59

标签: excel vba variables excel-vba countif

我正在尝试使用循环计算工作表中K列中特定字符串出现的行数。用于搜索的字符串位于记分卡B2:B8中。在这种情况下,计数应放在下一列C中。我试图将“op_id”中的字符串传递给countif。当我运行它时,C列中的所有计数值都是0.这是我到目前为止所拥有的:

Dim op_id As String

For i = 2 To 8
op_id = Sheets("Scorecards").Cells(i, 2)
Sheets("Scorecards").Cells(i, 3) = "=COUNTIF('Raw Data'!K:K, & op_id)"

Next i

提前致谢!

2 个答案:

答案 0 :(得分:2)

除非您的示例过于简单,否则无需在此使用VBA,因为您可以使用SUMPRODUCT达到相同的效果,例如:

=SUMPRODUCT(1*('Raw Data'!K:K=B2))

...并向下拖动以应用所需的行数。

答案 1 :(得分:1)

问题是VBA不支持字符串插值。你需要连接:

Dim op_id As String

For i = 2 To 8
    op_id = Sheets("Scorecards").Cells(i, 2)
    Sheets("Scorecards").Cells(i, 3) = _
        "=COUNTIF('Raw Data'!K:K, """ & op_id & """)"

Next i