Excel:通过macros使用正则expression式replace超链接中的string

我想通过macrosreplaceExcel 2003(VB5.5)中的string(例如所有数字)。 现在,我有这个代码:

Sub DeleteDigits() Dim hLink As Hyperlink Dim wSheet As Worksheet For Each wSheet In Worksheets For Each hLink In wSheet.Hyperlinks hLink.Address = regEx.Replace(hLink.Address, "\d", "") Next hLink Next wSheet End Sub 

我在引用中检查了正则expression式,但我不知道如何通过hLink.Address不是一个对象,这是我得到的错误的消息。

Replace不支持三个参数。 您必须先通过属性设置模式。 像这样:

 Sub DeleteDigits() Dim hLink As Hyperlink Dim wSheet As Worksheet Dim regEx As New VBScript_RegExp_55.RegExp For Each wSheet In Worksheets For Each hLink In wSheet.Hyperlinks regEx.Pattern = "\d" hLink.Address = regEx.Replace(hLink.Address, "") Next hLink Next wSheet End Sub 

编辑:
支持文档:

“Pattern – 用于定义正则expression式的string,必须在使用正则expression式对象之前进行设置。

“Replace(search-string,replace-string) – Replace方法以2个string作为参数,如果它能够匹配searchstring中的正则expression式,则用replacestring代替匹配,新的string被返回,如果没有find匹配,则返回原始的searchstring。

http://msdn.microsoft.com/en-us/library/ms974570.aspx#scripting05_topic2