我正在尝试使用循环计算工作表中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
提前致谢!
答案 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