网站首页/办公软件列表/内容

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

办公软件2024-01-02阅读
Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。

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

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)

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


Excel整体界面趋于平面化,显得清新简洁。流畅的动画和平滑的过渡,带来不同以往的使用体验。

……

相关阅读