1

我正在尝试通过宏替换 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不是对象的消息,这是我得到的错误。

4

1 回答 1

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

编辑:
支持文件:

“模式 - 用于定义正则表达式的字符串。必须在使用正则表达式对象之前设置。”
...
"Replace (search-string, replace-string) - Replace 方法将 2 个字符串作为其参数。如果它能够成功匹配 search-string 中的正则表达式,则它将匹配替换为 replace-字符串,并返回新字符串。如果没有找到匹配项,则返回原始搜索字符串。

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

于 2012-09-12T13:49:58.070 回答