我试图通过宏替换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 不是对象的消息,这是我得到的错误。
答案 0 :(得分:1)
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 - 用于定义正则表达式的字符串。必须在使用正则表达式对象之前设置该字符串。”
...
“Replace(search-string,replace-string) - Replace方法接受2个字符串作为参数。如果能够成功匹配搜索字符串中的正则表达式,则将该匹配替换为replace-string,并且返回新字符串。如果未找到匹配项,则返回原始搜索字符串。“http://msdn.microsoft.com/en-us/library/ms974570.aspx#scripting05_topic2