本帖最后由 liu-aguang 于 2014-6-14 21:03 编辑
在上一章中,我们给出了一个用VBA删除行尾空格的正则处理例子,它代表了一般的代码框架模式,下面再看一看它的结构特点,并对每一部分的代码段进行剖析: Sub test() Dim regx,S$,Strnew$ 1.定义变量代码段 S=”正则表达式其实很简单 “ 2.目标文本字串变量赋值代码段 Set regx=createobject(“vbscript.regexp”) 3.创建正则对象代码段 Regx.pattern=”\s+$” 4.设置正则对象的pattern属性代码段 Regx.global=true 5.设置正则对象的其它属性代码段 Strnew=regx.replace(s,””) 6.应用正则对象方法代码段 Msgbox strnew 7.处理返回值代码段 End sub 1.定义变量代码段 不必讲解了吧. 2.目标文本字符串赋值代码段 目标文本,可能存在于文本文档、Word文档、HTML文档或Excel文档等文档之中。正则对象并不能直接作用于这些文档,只能作用于它们的副本。所以用VBA正则处理这些文档,必须首先从这些文档中读出字符串并赋值于字符变量。如果任务是修改文本,那么,你可能需要编写额外的代码将修改后的文本字符串重新写回原文档中. 例:假如目标文本存在于当前表格A1单元格中.可使用下列代码赋值于字符变量S S=Activesheet.[a1] 目标文本也可能分别存在于一个数组中,那么,你可能需要通过循环逐一处理. 你也可以直接以输入的方式,赋值给字符变量,就像上面的例子.这时特别注意的是:半角双引号是VBA语言中的保留字符,如果目标文本中本身含有半角双引号,则必须转义,转义方法是:用重复的双引号表示一个双引号. 例:目标文本为:”我们用”汗牛充栋”、”学富五车”形容一个人读的书、拥有的知识多。”. 将之赋值给S的代码为: S=”我们用””汗牛充栋””、””学富五车””形容一个人读的书、拥有的知识多。” |