知識、知恵のカタマリ

[PR]コレがGoogleの検索ストーリー

お蔵入り

clip!clip!
Ads By Google

VBAでセルに入っている文字をカウントしていますが、問題に直面しています。

Dim cnt As Long
Dim i As Long
Dim lastRow As Long

For i = 1 to 20 step 2
lastRow = Cells(65536, i).End(xlUP).Row
   cnt = WorksheetFunction.CountIf(ActiveSheet.Range(Cells(10, i),Cells(lastRow, i), "お世話になっております")
cnt = cnt + cnt
Next

Excelのセルを1列ずつ飛ばして列に「お世話になっております」が含まれたら件数をカウントしています。
そのカウント数が何故かリセットされてしまいます。
カウント数を足していきたいのですが・・・考え方自体が違うのでしょうか?

2009-01-19 23:27の質問
この質問は、30日間解決しなかったために自動的に質問が一旦閉じられました。

回答(2)

1.

2009-01-20 04:11:42
ActiveSheet.Range(Cells(10, i),Cells(lastRow, i)
の部分、閉じ括弧が足りないように思いますが・
例:
ActiveSheet.Range(Cells(10, i),Cells(lastRow, i))
回答レベル : アドバイス

2.

2009-02-03 12:27:52
cnt = WorksheetFunction(以下略)で、ループの度にcntに代入していますのでリセットされます。

また、cnt = cnt + cnt は、cntにcntの2倍を代入していますが、これは何でしょうか?

回答としては、
2行で組んである、
cnt = WorksheetFunction.CountIf(ActiveSheet.Range(Cells(10, i),Cells(lastRow, i), "お世話になっております")
cnt = cnt + cnt
を以下の1行でコーディングすればどうでしょうか???

cnt = cnt + WorksheetFunction.CountIf(ActiveSheet.Range(Cells(10, i), Cells(lastRow, i)), "お世話になっております")
で、どうでしょう?
Ads By Google

コメント

まだコメントがありません

トラックバック(2)

トラックバックURL: