我正在尝试设置rng来搜索工作表,以确定是否有任何日期或包括今天的日期,以及是否有没有移动到下一个工作表。
我有以下代码完全按照我想要收集“今日日期”之前或包含“宏按钮”所在的工作表的任何行,但是如果没有任何日期落入该标准将返回错误,如果其他人打开电子表格,我想删除此错误。
Private Sub CommandButton2_Click()
Dim ws As Worksheet, wsCtrl As Worksheet
Dim lrow As Long, rng As Range
Dim tdate As Date
tdate = Date
Set wsCtrl = ThisWorkbook.Sheets("Collate Info")
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
For Each ws In ThisWorkbook.Worksheets
If ws.Name = "Collate Info" Then GoTo nextsheet
With ws
lrow = .Range("I" & .Rows.Count).End(xlUp).Row
.AutoFilterMode = False
Set rng = .Range("I2:I" & lrow).Find(what:="<tdate")
If rng Is Nothing Then GoTo nextsheet
.Range("I2:I" & lrow).AutoFilter Field:=1, Criteria1:="<" & tdate
.Range("I3:I" & lrow).SpecialCells(xlCellTypeVisible).EntireRow.Copy
wsCtrl.Range("A" & wsCtrl.Rows.Count).End(xlUp).Offset(2, 0).PasteSpecial xlPasteValues
.AutoFilterMode = False
Application.CutCopyMode = False
End With
nextsheet:
Next
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
我已经尝试了一些其他的设置.Find线的变体,似乎无法正确,任何帮助将不胜感激
答案 0 :(得分:0)
一个简单的解决方案是找到日期范围内的最小值,并与今天的日期进行比较。
If Application.WorksheetFunction.Min(.Range("I1:I" & lrow)) > DateValue(Date) Then GoTo nextsheet
希望这有助于=]