变量中countif的vba通过条件

变量中countif的vba通过条件,vba,variables,excel,countif,Vba,Variables,Excel,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(

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

提前谢谢

问题在于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

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

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

…并向下拖动以应用到所需的任意多行。

您可以指定您使用的Excel版本吗?我不知道这是一个noob。谢谢这正是我想要的。作为后续:当我有多个标准时,我能以某种方式嵌套这个或使用它吗?示例:使用上面的字符串(b2:b8)以及原始数据表上的其他几列。过程:1。计算上面带有字符串的行(更多信息:它们是用户ID)。2.为每个用户id计数包含失败字符串的行。3。为每个用户的每个失败计算严重失败的行数。希望这能让你sense@user2108935我不知道如何使用公式实现,除非您有一个组合列(
UserId&Status
)并使用
countif
查询这些值(例如
123success
456fail
)。也许有更优雅的解决方案,但我看不到now@user2108935,如果您有excel 2010或更高版本,
COUNTIFS
使用多个标准。我会把这个放在我的工具袋里。我之所以使用vb,是因为我支持的人正在做许多手工计算,我正试图让他们尽可能地轻松。