vba通过标准countifvariables

我正在计算使用循环在工作表中K列中出现特定string的行数。 用于search的string驻留在Scorecards B2:B8中。 计数应该放在下一列C中。 我正在尝试将“op_id”中的string传递给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 

提前致谢!

除非你的例子过于简单,否则这里不需要使用VBA,因为你可以使用SUMPRODUCT来达到同样的效果,例如:

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

…并向下拖动以适用于您需要的行数。

问题是VBA不支持string插值。 你需要连接而不是:

 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