我試圖設置rng對工作表進行搜索以確定在今天的日期之前是否有任何日期,並且如果沒有移動到下一個工作表。將今天的日期設置爲查找搜索的VBA
我有下面的代碼,正如我想要收集任何行之前或包含今天的日期到「宏按鈕」所在的工作表,但如果沒有任何落入日期到那個標準它將返回一個錯誤,並且我想刪除這個錯誤,如果其他人打開電子表格。
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行一些其他的變化似乎並不能得到它的權利,任何幫助,將不勝感激
我得到你發現了錯誤;我改成了:'設置rng = .Range(「I2:I」&lrow).Find(What:= CDate(tdate))',但只找到符合今天的日期 - 不是更早...我會再看一些,但您可能需要一種替代方法。 –