我正在嘗試使用匹配功能來定位輸入今天日期的單元格。今天的日期是 2022 年 4 月 22 日,我需要宏在下面的 excel 表中將值回傳為 4。下面是我的代碼,它顯示錯誤訊息“運行時錯誤'1004':無法獲取 WorksheetFunction 類的匹配屬性。” 你能幫我修復代碼嗎?非常感謝
Sub FindDate()
Dim FindDate As Long
FindDate = WorksheetFunction.Match(Date, Sheet1.Rows(1), 0)
Debug.Print FindDate
End Sub

uj5u.com熱心網友回復:
WorksheetFunction.Match如果找不到匹配項,將引發錯誤。這就是這里發生的事情:
如果您搜索Date它不會找到該值,因為 Excel 中的日期存盤在單元格中作為天數,1900-01-01并且該值是型別Long(或者Double如果它包含時間)。CDbl(Date)因此,如果您尋找日期,您需要搜索。
Sub FindDate()
Dim FindDate As Long
On Error Resume Next 'hide error message if match doesn't find anything
FindDate = WorksheetFunction.Match(CDbl(Date), Sheet1.Rows(1), 0)
On Error Goto 0 're-activate error reporting !!!
If FindDate > 0 Then
Debug.Print FindDate
Else
MsgBox "Date was not found!"
End If
End Sub
uj5u.com熱心網友回復:
Match是WorksheetFunction類的成員,但你需要用一個物件來呼叫它。采用
FindDate = Application.Match(Date, Sheet1.Rows(1), 0)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/461208.html
上一篇:如何在Pandas的Excel資料透視表函式中使用分組功能?
下一篇:如何決議這個excel?
