|
コードを作成したのですが、間違った数値が返ってきてしまいます。
どこが間違っているのか分からず困っています。
お力を貸していただければと思います。
B9セル以下のB列の奇数番号(B9,B11,B13・・・)に任意の数字(1〜9)が入っています。
その数字が3または5の場合、その行のH列からP列の数値が入っているセルの数をカウントしたく思っています。
(H列からP列には空欄または時刻のデータが入っています。)
また、シートが20枚ほどあり、すべてのシートで同じ作業を行い、最終的には別シートを作成し、A列にシート名、B列にカウントしたセルの数を表示させます。
ちなみに全シート、データはA列からP列、1行目から120行目くらいまで入っています。(空欄のセルもあります。)
以下がコードです。
Sub Try1()
Dim sumSheet As Worksheet
Dim ws As Worksheet
Dim i As Long, LastRow As Long
Dim n As Long, nCount As Long
'集計シートの作成
With ActiveWorkbook.Worksheets
On Error Resume Next
Set sumSheet = .Item("sum")
On Error GoTo 0
If sumSheet Is Nothing Then
Set sumSheet = .Add(After:=.Item(.Count))
sumSheet.Name = "sum"
Else
sumSheet.UsedRange.ClearContents
End If
ReDim res(1 To .Count - 1, 1 To 2)
End With
'集計
n = 0
For Each ws In ActiveWorkbook.Worksheets
If ws.Name <> "sum" Then
With ws
LastRow = .Cells(.Rows.Count, 2).End(xlUp).Row
nCount = 0
For i = 9 To LastRow Step 2
Select Case .Cells(i, 2).Value
Case 3,5
nCount = nCount + WorksheetFunction.Count(.Cells(i, 8).Resize(, 9))
End Select
Next
n = n + 1
res(n, 1) = .Name
res(n, 2) = nCount
End With
End If
Next
sumSheet.Range("A1").Resize(n, 2).Value = res
sumSheet.Activate
MsgBox "集計しました"
End Sub
VBA初心者です。よろしくお願いいたします。
|
|