我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务。支持我,也为自己加油!
在Excel中有很多的IS类函数可以判断数据类型,那在VBA中该如何判断数据类型呢?
比如:
![d17b1394057a2386325de9a95734e7a6.gif](https://img-blog.csdnimg.cn/img_convert/d17b1394057a2386325de9a95734e7a6.gif)
当然,可以直接在VBA中利用工作函数判断,但比如要判断一个数据是否是日期,工作表中好像没有此类函数可以直接判断,但VBA中却有函数可以直接判断。有一些是VBA中也没有直接的函数可以判断的,比如时间,那又该怎么办呢?
上面的案例代码如下:
Sub CellType()Select Case True Case IsEmpty(Selection) MsgBox "Blank" Exit Sub Case Application.IsText(Selection) MsgBox "Text" Exit Sub Case Application.IsLogical(Selection) MsgBox "Logical" Exit Sub Case Application.IsErr(Selection) MsgBox "Error" Exit Sub Case IsDate(Selection) MsgBox "Date" Exit Sub Case InStr(1, Selection.Text, ":") 0 MsgBox "Time" Exit Sub Case IsNumeric(Selection) MsgBox "Number" Exit SubEnd SelectEnd Sub
1、判断数据是否为空,很简单,直接用VBA函数IsEmpty即可。
2、判断数据是否为文本可以用工作表函数IsText。
3、判断数据是否为逻辑值可以用工作表函数IsLogical。
4、判断数据是否为错误值可以用工作表函数IsErr。
5、判断数据是否为日期可以用VBA函数IsDate。
6、判断数据是否为时间呢?这个稍微复杂点,可用通过在数据中查找是否存在“:”而确定是否为时间。
但是,文本中有可能也有冒号,日期中也有可能有冒号,所以你首先要排除这个数据肯定不是文本型数据,也不是日期型数据,然后才能通过在数据中查找冒号判断是否为时间。大家可以把上面代码中判断文本或日期的代码段放到判断时间的代码段后面,再测验下结果,就会明白此逻辑。
另外,特别值注意的是:Range对象的Value属性和Text属性有什么区别呢?举了个例子,A1中为时间 1:00,大家可以测验下,两个属性的结果有什么不同。
本节的分享就到这里,鹏哥祝大家每天都有进步。
想学习更多,请在电脑端打开网址:
www.mihong.top
![ad57b6036794118b0ee6f17f8085d176.gif](https://img-blog.csdnimg.cn/img_convert/ad57b6036794118b0ee6f17f8085d176.gif)
鼓励一下,赞完再走
|