VBA的Date類型比較奇怪 。
測試:
1. 新建一個空白的Excel文檔,在A1單元格輸入2009-11-12 。
【Excel VBA中的Date類型的匹配問題】2. 打開VBA編輯器,插入模塊,增加下面這個宏
Sub test()MsgBox #11/12/2009# = Range("A1").Value ' trueMsgBox VarType(#11/12/2009#) = VarType(Range("A1").Value) ' trueMsgBox Application.WorksheetFunction.Match(#11/12/2009#, Range("A1"), 0) ' errorEnd Sub3. 按F5運行test宏,可以看到Range("A1")的類型和值都和#11/12/2009#一致(通過對range("A1")的監視也可以看出這一點),都是Date類型,但是如果用match去匹配的話,卻出現錯誤 。
解決方法,在匹配中將要匹配的Date類型的數據強制轉換成Long類型去匹配 。
MsgBox Application.WorksheetFunction.Match(CLng(#11/12/2009#), Range("A1"), 0)對其原理還是不清楚,不知道有沒有看到的高手來做一下解釋 。
猜你喜歡
- Excel VBA使用vlookup出現1004錯誤解決方法
- Excel批量導入圖片的方法實例教程
- Excel VBA中讓你意想不到的陷阱
- Excel刪除數字保留文本的兩種方法
- 怎么停止Excel屏幕刷新
- Excel VBA單元格的引用方法
- Excel for VBA:對象枚舉循環For each
- 怎么隱藏Excel常用工具欄
- Excel VBA“對于指定的操作,該主題不受信任?!钡慕鉀Q方法
- Excel條件格式圖標集的使用實例教程
