VBA字宏不能在不同的计算机上工作

时间:2015-07-31 19:05:24

标签: vba ms-word word-vba word-vba-mac

我整理了一个简单的宏来查找括号内的文本实例并突出显示括号内的所有内容,但由于某些原因它在另一台计算机上不起作用:

With Selection.Find
    .ClearFormatting
    .Text = "\[texthere*\]"
    Options.DefaultHighlightColorIndex = wdYellow
    .Replacement.Highlight = True
    .Replacement.Font.Color = wdColorRed
    .Replacement.Font.Size = 16
    .Replacement.Text = "^13 ^&"
    .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
End With

我已将非工作计算机上的问题隔离到无法识别搜索字符串"/[texthere*/]",因为如果我删除反斜杠和括号并只搜索“texthere *”,则突出显示操作有效。

首先,我检查了安全设置,它们在两台机器上都是相同的。接下来我检查了版本和库。工作机器是14.4.1,非工作版本是14.4.7,从它看起来有点儿车 - 我在网上搜索了一个答案,发现人们在Excel中讨论'表单控件'的问题这是由14.4.7更新产生的,但我不知道Word中可能导致问题的原因。

更新是否可能无法找到我的Selection.find.Text字符串? 这些库看起来是一样的,但是我不知道是否有办法通过添加到库来解决问题? 无论如何,我如何让它在另一台计算机上工作?

1 个答案:

答案 0 :(得分:1)

Find settings can persist from previous uses, so it's possible the non-working computer has a different default applied. Try for example explicitly setting the MatchWildcards value instead of relying on the existing value.

With Selection.Find
    .ClearFormatting
    .MatchWildcards = True    '<<<<<<<<<<<<<<<<
    .Text = "\[texthere*\]"
    Options.DefaultHighlightColorIndex = wdYellow
    .Replacement.Highlight = True
    .Replacement.Font.Color = wdColorRed
    .Replacement.Font.Size = 16
    .Replacement.Text = "^13 ^&"
    .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
End With