[英]Excel VBA Sum Rows by Date
如果日期是今天,我有這段代碼用於匯總幾行。 它可以正常工作,但是我有幾個工作表,例如...工作表1、2、3、4、5。如果我在工作表1中輸入數據,然后運行此代碼,效果很好,但是如果我在工作表1中輸入數據,則跳過sheet2並轉到3,則零表示sheet2中的內容。 如果日期小於今天,我在底部附近的行上注釋掉以退出sub,但是這樣做會使代碼消失。 我如何才能僅在當前使用的圖紙上運行此文件? 我想忽略所有其他工作表。
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
更換:
For Each sh In ActiveWorkbook.Worksheets
與:
Set sh = ActiveSheet
然后刪除:
Next sh
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.