Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 8553|回复: 13

[已解决]用Like运算符判断数字

[复制链接]
发表于 2013-7-31 10:14 | 显示全部楼层 |阅读模式
Sub test()
    Dim x As String
    x = InputBox("请输入1个数字:", , 0)
    If Len(x) = 1 Then
'        If x Like "#" Then MsgBox "数字"
'        If x Like [0-9] Then MsgBox "数字"
        If x Like [0123456789] Then MsgBox "数字"
    End If
End Sub



请问:后两个IF语句为何没判断出是数字?谢谢!
最佳答案
2013-7-31 10:17
加双引号试试...
发表于 2013-7-31 10:17 | 显示全部楼层    本楼为最佳答案   
回复

使用道具 举报

发表于 2013-7-31 10:28 | 显示全部楼层
        If x Like "[0-9]" Then MsgBox "数字"
        If x Like "[0123456789]" Then MsgBox "数字"
根据2楼的答案,双引号加在中括号的外面,加了双引号确实可以了。
回复

使用道具 举报

发表于 2013-7-31 10:37 | 显示全部楼层
要加双引号的。
回复

使用道具 举报

 楼主| 发表于 2013-7-31 10:46 | 显示全部楼层
在中括号 ([ ]) 中,可以用由一个或多个字符 (charlist) 组成的组与 string 中的任一字符进行匹配,这个组几乎包括任何一个字符代码以及数字。


这是帮助里的内容。按照帮助所说,像1楼那样,为什么不行呢?
回复

使用道具 举报

发表于 2013-7-31 10:57 | 显示全部楼层
关键是0-9默认的不是string啊,所以要加引号{:22:}
回复

使用道具 举报

发表于 2013-7-31 10:58 | 显示全部楼层
因为like是两个字符串之间的比较,如果[0-9]和[0123456789] 不加双引号,就不是字符串了,不知这样说对不对。
回复

使用道具 举报

 楼主| 发表于 2013-7-31 11:28 | 显示全部楼层
谢谢大家!

刚才看了帮助的示例,pattern 确实都加了一对英文双引号。
不过,在对此的说明里没强调(要加双引号)而已,害我以为不用加。

在知道必须要加之后。还想打听下,如果就是不加,那么like运算时,将怎么解释1楼第2个IF语句的条件?
回复

使用道具 举报

发表于 2013-7-31 13:21 | 显示全部楼层
如果不加的话,你有没有想到[]是什么特殊用法不?
[A1]...
回复

使用道具 举报

 楼主| 发表于 2013-7-31 15:15 | 显示全部楼层
本帖最后由 爱疯 于 2013-7-31 15:17 编辑
Dj_soo 发表于 2013-7-31 13:21
如果不加的话,你有没有想到[]是什么特殊用法不?
[A1]...


Sub test()
    Dim x
    x = -9
    Debug.Print [0-9], x Like [0-9]
    x = 123456789
    Debug.Print [0123456789], x Like [0123456789]
End Sub

这么看,这里的中括号,等同于于小括号,等同于不加括号。
你写[A1]是何意呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-5 17:43 , Processed in 0.362967 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表