Ads By Google
VBAでセルに入っている文字をカウントしていますが、問題に直面しています。
Dim cnt As LongDim 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)), "お世話になっております")
で、どうでしょう?
また、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
コメント
まだコメントがありません



