本文作者:office教程网

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

office教程网 2024-08-31 22:38:13
后台-系统设置-扩展变量-手机广告位-内容正文顶部
摘要: VBA的Date类型比较奇怪。
测试:
1. 新建一个空白的Excel文档,在A1单元格输入2009-11-12。Excel VBA使用vlookup出现1004错误解决方法Vlookup 在Excel中查找大量数据时效率是很高...

VBA的Date类型比较奇怪。

测试:

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

Excel VBA使用vlookup出现1004错误解决方法

Vlookup 在Excel中查找大量数据时效率是很高的,在Excel中广泛的被使用着。 vlookup 查找时如找到不到匹配项会返回#N/A 的错误,这点在工作表中是很友好的,但是在VBA中使用vlookup时不会返回这个错误值,而且是抛出1004错误,所以在使用是要标记它。 示例代码: Function chec

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隐藏工作表界面只显示用户窗体的三种方法

有时候当我们打开excel,没有看到常规的显示工作表界面,而是只显示了用户窗体。这是怎么实现的呢?我们可以通过VBA代码来进行。 按下ALT F11,打开VBE编辑器,下面所有代码都位于ThisWorkBook中: 只显示用户窗体方法一:Private Sub Workbook_Open()ThisWorkbook

后台-系统设置-扩展变量-手机广告位-内容正文底部
未经允许不得转载:

作者:office教程网,原文地址:Excel VBA中的Date类型的匹配问题发布于2024-08-31 22:38:13
转载或复制请以超链接形式并注明出处 演示站

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

留言与评论(共有 0 条评论)
   
验证码: