簡體   English   中英

Excel VBA按日期求和的行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM