注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

数据挖掘

学习数据挖掘

 
 
 

日志

 
 

VBA ---------is like [转]  

2012-09-01 12:06:23|  分类: VBA |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

http://blog.163.com/xxt81@126/blog/static/16638104220108269409480/

二、Is 运算符
       用来比较两个对象的引用变量。
01,语法:result = object1 Is object2
       Is 运算符的语法具有以下几个部分:
部分       描述 
result    必需的;任何数值变量。 
object1 必需的;任何对象名称。 
object2 必需的;任何对象名称。

02,说明:
       如果 object1 和 object2 两者引用相同的对象,则 result 为 True;否则,result 为 False。有很多方法使两个变量引用相同的对象。
       在以下示例中,A 和 B 已被设置成与 C 引用相同的对象:
     Set A = B

      在下例中,A 和 B 引用的对象与 C 相同:
    Set A = C
    Set B = C

03,示例:
       本示例使用 Is 运算符来比较两个对象引用。示例中的对象变量名只是作说明用途的一般性名称而已。
Dim MyObject, YourObject, ThisObject, OtherObject, ThatObject, MyCheck
Set YourObject = MyObject    ' 指定对象引用。
Set ThisObject = MyObject
Set ThatObject = OtherObject
MyCheck = YourObject Is ThisObject    ' 返回 True。
MyCheck = ThatObject Is ThisObject    ' 返回 False。
' 假设 MyObject <> OtherObject
MyCheck = MyObject Is ThatObject    ' 返回 False。

04,请参阅:(01)比较运算符、(02)运算符优先顺序、(03)运算符摘要。

 

三、Like 运算符
        用来比较两个字符串。
01,语法:result = string Like pattern
02,Like 运算符的语法具有以下几个部分:
部分      描述 
result    必需的;任何数值变量。 
string   必需的;任何字符串表达式。 
pattern 必需的;任何字符串表达式,遵循“说明”中的模式匹配约定。

03,说明:
        如果 string 与 pattern 匹配,则 result 为 True;如果不匹配,则 result 为 False。但是如果 string 或 pattern 中有一个为 Null,则 result 为 Null。
    Like 运算符的特性随着 Option Compare 语句而不同。每个模块的缺省字符串比较方法是 Option Compare Binary。
    在字符串比较中,Option Compare Binary 的结果是根据字符的内部二进制表示法导出的排序顺序得到的。在 Microsoft Windows 中,排序顺序由代码页决定。下例说明通常二进制的排序顺序:
A < B < E < Z < a < b < e < z < _ < _ < _ < _ < _ < ?/P>

    在字符串比较中,Option Compare Text 的结果是字符串比较,它建立在不区分大小写的文本排序顺序基础上,而这一排序顺序是由系统的区域确定的。在对相同的字符使用 Option Compare Text 时会产生以下文本排序顺序:
(A=a) < (_=_) < (B=b) < (E=e) < (_=_) < (Z=z) < (_=_)

    内建的模式匹配功能提供了多种工具来进行字符串比较。有了模式匹配功能就可以使用通配符、字符串列表或字符区间的任何组合来匹配字符串。下列表格指出 pattern 中允许的字符以及它们与什么进行匹配:
pattern 中的字符    符合 string 中的 
?                  任何单一字符。 
*                  零个或多个字符。 
#                  任何一个数字 (0–9)。 
[charlist]         charlist.中的任何单一字符。 
[!charlist]        不在 charlist 中的任何单一字符。

      在中括号 ([ ]) 中,可以用由一个或多个字符 (charlist) 组成的组与 string 中的任一字符进行匹配,这个组几乎包括任何一个字符代码以及数字。
      注意 为了与左括号 ([)、问号 (?)、数字符号 (#) 和星号 (*) 等特殊字符进行匹配,可以将它们用方括号括起来。不能在一个组内使用右括号 (]) 与自身匹配,但在组外可以作为个别字符使用。
      通过在范围的上、下限之间用连字符 (–),charlist 可以指定字符的范围。例如,如果 string 中相应字符的位置包括 A–Z 之间的任意大写字母,则 [A-Z] 得到一个匹配。不需要分界符,方括号内就可以包括多个范围。
      指定范围的意义取决于运行时的有效字符排序(正如 Option Compare 和系统的区域设置所确定的,代码在运行之中)。使用 Option Compare Binary 示例可以看到,范围 [A–E] 与 A、B 和 E 相匹配。通过 Option Compare Text 可以看到,[A–E] 与 A, a, _, _, B, b, E, e 相匹配。此范围与 _ 或 _ 不匹配,因为按照排序顺序,重音字符在非重音字符之后。

      下面列举的是模式匹配的其它重要规则: 
(01)charlist 开头的惊叹号 (!) 意味着,如果在 string 中找到任何不属于 charlist 的字符,则存在一个匹配。如果在方括号之外使用惊叹号,则惊叹号与自身匹配。
(02)连字符 (–) 可以出现在 charlist 的开头(如果使用惊叹号,则在惊叹号之后),也可以出现在 charlist 的结尾与自身匹配。在任何其它地方,连字符用来识别字符的范围。
(03)当指定了字符范围时,这些字符必须按照升序(从最小到最大)顺序来显示。[A-Z] 是有效模式,但 [Z-A] 不是。
(04)字符序列 [] 被看作是长度为零的字符串 ("")。 
          某些语言的字母表中有一些特殊字符,它们表示两个分开的字符。例如,在一些语言中,当字符 "a" 与 "e" 同时出现时,用 "_" 来表示字符 "a" 与 "e"。Like 运算符可以辨认出单一的特殊字符和两个个别字符是否相等。
        当一个语言使用了一个特殊字符,而且这个字符在系统地区设置中已被指定的时候,在 pattern 或 string 中出现的单一特殊字符将与其他字符串中等价的两个字符相匹配。与此相似,由方括号括起来的 pattern 中的单一特殊字符(字符本身在列表或范围内)将与 string 中等价的两个字符序列匹配。

04,示例:
       本示例使用 Like 运算符做字符串的方式比较。
Dim MyCheck
MyCheck = "aBBBa" Like "a*a"    ' 返回 True。
MyCheck = "F" Like "[A-Z]"    ' 返回 True。
MyCheck = "F" Like "[!A-Z]"    ' 返回 False。
MyCheck = "a2a" Like "a#a"    ' 返回 True。
MyCheck = "aM5b" Like "a[L-P]#[!c-e]"    ' 返回 True。
MyCheck = "BAT123khg" Like "B?T*"    ' 返回 True。
MyCheck = "CAT123khg" Like "B?T*"    ' 返回 False。

05,请参阅:(01)InStr 函数、(02)Option Compare 语句、(03)StrComp 函数、(04)比较运算符、(05)运算符优先顺序、(06)运算符摘要。


  评论这张
 
阅读(833)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017