我正试图通过宏替换Excel 2003(VB5.5)中的字符串(例如所有数字)。现在,我有了这个代码:
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
我在引用中检查了正则表达式,但我不知道如何通过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
编辑:
支持文件:
"模式-用于定义正则表达式的字符串。必须在使用正则表达式对象之前设置此字符串。"
…
Replace(搜索字符串,替换字符串)-Replace方法以2个字符串作为参数。如果它能够成功地匹配搜索字符串中的正则表达式,则用替换字符串替换该匹配项,并返回新字符串。如果没有找到匹配项,则返回原始搜索字符串http://msdn.microsoft.com/en-us/library/ms974570.aspx#scripting05_topic2