为什么我的宏不能在Word中自动运行?

时间:2015-06-17 21:35:19

标签: vba ms-word word-vba

这是我第一次尝试在Word中使用VBA,尽管我在Excel中使用了它很多。我想要做的是在打开Word模板文档后自动执行我的代码。这是我在Word模板模块中放置的代码:

Private Sub AutoOpen()


Dim myValue
myValue = InputBox(prompt:="What is the client name", Title:="InputBox", Default:="Type your client name here")


stringReplaced = stringReplaced + "<Replace>"

For Each myStoryRange In ActiveDocument.StoryRanges
    With myStoryRange.Find
        .Text = "<Replace>"
        .Replacement.Text = myValue
        .Wrap = wdFindContinue
        .ClearFormatting
        .Replacement.ClearFormatting
        .Replacement.Highlight = False
        .Execute Replace:=wdReplaceAll
    End With
Next myStoryRange



End Sub

我正在使用Word 2010.当我手动进入并单击运行时,我的代码就像我想要的那样运行。但是,当我关闭我的Word文档并重新打开时,根本没有任何事情发生。我用Google搜索了试图找到解决方案的问题(并尝试了不同版本的AutoOpen),但我无法弄清楚我做错了什么。关于为什么AutoOpen不会自动执行的任何想法? 谢谢!

1 个答案:

答案 0 :(得分:0)

您应该将代码放在模板文档的标准模块中。接下来,将子名称从AutoOpen()更改为:

Sub AutoExec()
    '..... your code here .....
End Sub