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

例が過度に単純化されていない限り、SUMPRODUCT を使用して同じ効果を得ることができるため、ここで VBA を使用する必要はありません。

=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 に答える