日付が今日の場合、いくつかの行を合計するためのこのコードがあります。それは正常に動作しますが、私はいくつかのワークシートを持っています。例えば、シート1,2,3,4,5です。シート1にデータを入力してからこのコードを実行するとうまくいきますが、 sheet2に移動し、3に行くと、sheet2にあるものがゼロになります。私は日付が今日よりも小さい場合、Subを終了するために底の近くの行をコメントアウトしますが、コードが死ぬことをします。このシートを現在使用されているシートのみで走行させるにはどうすればよいですか?私は他のすべてのシートを無視したい。Excel VBA合計行by
Sub Sum_TodaysDate()
On Error Resume Next
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
Dim LastRow As Long, iCount As Long
Dim icell As Range
Dim dSplit As Variant
Dim dIndex As Date
LastRow = sh.Range("D" & Rows.Count).End(xlUp).Row
iCount = 0
For Each icell In sh.Range("D2:D" & LastRow)
dSplit = Split(icell.Value, " ")
dIndex = Format(dSplit(0), "mm/dd/yyyy")
If dIndex = Date Then
iCount = iCount + 1
icell.Offset(0, 1).Value = "|"
End If
Next icell
'If sh.Range("E" & LastRow).Value < Date Then Exit Sub
sh.Range("E" & LastRow).Value = iCount
sh.Range("E" & LastRow).Font.Color = vbRed
Next sh
Application.ScreenUpdating = False
End Sub
あなたは、コードがすべてでどのように動作するか知っていますか?それがすべてのシートで動作する場合は、ループを削除するのはかなり簡単です – psubsee2003