EXCELのVBAでDcount関数がうまく動きません。
EXCELのVBAでDcount関数を使おうとして、下記コードを作成しましたが、Dcount関数の部分が期待どおり動かず、該当なしとして、0を返してきます。
デバックで途中でマクロを止めて(Dcount関数の前)、セルに直接Dcount関数を入力すると、期待どおりの値を返してきます。
Dcount関数の記述の何が問題なのか、ご教示いただければ幸いです。
Sub 期間集計()
Dim myrow, Krow As Double
Dim First, Last As Date
Dim i, Count As Integer
Dim Data As Integer
Dim Keria As String
'Worksheets("期間別").Activate
Worksheets("期間別").Range("A1:BB65536").Delete
Worksheets("入力").Activate
With Worksheets("入力")
'入力表の最終行の行数をmyrowに代入
myrow = .Range("A65536").End(xlUp).Offset(1).Row
'出力前に入力データを日付順にソート
.Range("A3").Sort _
Key1:=.Columns("A"), _
Header:=xlGuess
First = Worksheets("集計").Range("G3")
Last = Worksheets("集計").Range("H3")
.Range("BH3:BH5").ClearContents
.Range("BH3") = "日付"
.Range("bi3") = "日付"
.Range("BH4") = ">=" & First
.Range("BI4") = "<=" & Last
.Range(.Cells(2, 1), Cells(myrow, 47)).AdvancedFilter Action:=xlFilterCopy, _
Criteriarange:=.Range("BH3:BI4"), Copytorange:=Worksheets("期間別").Range("C11"), Unique:=False
Krow = Worksheets("期間別").Range("C65536").End(xlUp).Row
Keria = "C11:" & "AW" & Krow
End With
Worksheets("集計").Activate
With Worksheets("集計")
.Range(.Cells(13, 10), .Cells(24, 10)).ClearContents
For i = 1 To 12
Count = 12 + i
.Range(.Cells(Count, 16), .Cells(Count, 61)).Copy
.Range(.Cells(11, 16), .Cells(11, 61)).PasteSpecial Paste:=xlValues
.Range(.Cells(10, 16), .Cells(11, 61)).Copy
With Worksheets("期間別")
.Range(.Cells(11, 53), .Cells(12, 98)).PasteSpecial Paste:=xlValues
Data = WorksheetFunction.DCount(.Range(Keria), .Range("C11"), .Range("BA11:CT12"))
End With
.Cells(Count, 10) = Data
Next i
End With
お礼
こんなやり方があるんですね! これでDcount関数を使わずにいけます。 有難うございました。