0
如果日期是今天,我有这个代码用于总结几行。它工作正常,但我有几个工作表,例如...表1,2,3,4,5。如果我在工作表1中输入数据,然后运行此代码它工作正常,但如果我在工作表1中输入数据,然后跳过sheet2并转到3,它将零表中的内容放在sheet2中。如果日期小于今天,我会在底部附近注释掉退出子,但这样做代码会死掉。我怎样才能使这个运行只有当前使用的工作表?我想忽略所有其他工作表。Excel VBA总结按行数
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