2

我正在尝试使用循环计算工作表中 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

提前致谢!

4

2 回答 2

2

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

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

...并向下拖动以根据需要应用到尽可能多的行。

于 2013-02-25T22:41:29.170 回答
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
于 2013-02-25T21:47:42.007 回答