Excel VBA中的Date类型的匹配问题

网友投稿 644 2022-12-02

Excel VBA中的Date类型的匹配问题

VBA的Date类型比较奇怪。

测试:

1. 新建一个空白的Excel文档,在A1单元格输入2009-11-12。

2. 打开VBA编辑器,插入模块,增加下面这个宏

Sub test() MsgBox #11/12/2009# = Range("A1").Value ' true MsgBox VarType(#11/12/2009#) = VarType(Range("A1").Value) ' true MsgBox Application.WorksheetFunction.Match(#11/12/2009#, Range("A1"), 0) ' errorEnd Sub

Excel VBA中的Date类型的匹配问题

3. 按F5运行test宏,可以看到Range("A1")的类型和值都和#11/12/2009#一致(通过对range("A1")的监视也可以看出这一点),都是Date类型,但是如果用match去匹配的话,却出现错误。

解决方法,在匹配中将要匹配的Date类型的数据强制转换成Long类型去匹配。

MsgBox Application.WorksheetFunction.Match(CLng(#11/12/2009#), Range("A1"), 0)

对其原理还是不清楚,不知道有没有看到的高手来做一下解释。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Excel批量导入图片的方法实例教程
下一篇:Excel VBA使用vlookup出现1004错误解决方法
相关文章