Vba 让我开始编程和调试Microsoft Office automation
我正在使用MicrosoftOffice2003并创建一组模板文档来标准化一些任务。我问了这个问题,但没有得到任何回应,所以我认为这太过于程序化了,希望我在这里会有更好的运气 我需要自动化一个使用大量Office(主要是Word)模板的工作流程。我想要的是在共享驱动器的“My Foo Bar Stuff”中包含“My Template Foo.dot”和“My Template Bar.dot”等,并让用户双击模板以创建新的Foo或Bar 我真正希望的是,用户双击Foo模板,并提示输入与其任务相关的两个项目(例如,项目编号),并在模板中使用脚本更改名称,保存时将默认名称更改为“Foo for project 1234.doc” 我继续问,得到了一个有效的答案……有一段时间。然后,当我双击模板创建新文档时,我的Vba 让我开始编程和调试Microsoft Office automation,vba,ms-word,ms-office,Vba,Ms Word,Ms Office,我正在使用MicrosoftOffice2003并创建一组模板文档来标准化一些任务。我问了这个问题,但没有得到任何回应,所以我认为这太过于程序化了,希望我在这里会有更好的运气 我需要自动化一个使用大量Office(主要是Word)模板的工作流程。我想要的是在共享驱动器的“My Foo Bar Stuff”中包含“My Template Foo.dot”和“My Template Bar.dot”等,并让用户双击模板以创建新的Foo或Bar 我真正希望的是,用户双击Foo模板,并提示输入与其任务相
AutoNew
宏停止启动。我不知道为什么或者如何调试它
在课堂模块/本应用程序中,我有:
Sub AutoNew()
Dim Project As String
Project = InputBox("Enter the Project Number")
ActiveDocument.SaveAs "Project " & Project & " Notes.doc"
End Sub
在Microsoft Word Objects/ThisDocument中,我有:
Private Sub Document_New()
End Sub
我真的不知道为什么或者从哪里来的
在工具/宏安全中。。。我已将安全级别设置为“低”
我是一名软件工程师,有25年以上的工作经验,但拥有完整的办公自动化系统。欢迎使用特定的解决方案和指向“这是如何自动执行Word”常见问题解答的指针。谢谢
更新:如果我创建了一个新模板(新…,空白文档,另存为“My new template.dot”),并插入
AutoNew()
宏,它就会工作。那么是什么阻止它在我现有的模板上工作呢
更新2:从我的旧模板中删除模块和函数并将其添加回工作模式。检查宏是否仍包含在模板中。这听起来很愚蠢,但对我来说,在Word 2003中,在以下情况下也发生了:
为什么??因为.DOT中存储的代码不会转到文档文件。您可以将模板附加到已保存的文档,以便访问相关模板中包含的宏 可以使用文档对象(即ActiveDocument)的AttachedTemplate属性执行此操作。 请注意,我自己并没有尝试过这个
Sub AutoNew()
Dim Project As String
Project = InputBox("Enter the Project Number")
ActiveDocument.SaveAs "Project " & Project & " Notes.doc"
ActiveDocument.AttachedTemplate = "\\path\to\templates\My Template Foo.dot"
End Sub
看
希望这能有所帮助。考虑发布AutoNew宏的代码。我猜是因为它刚与Word中的“autostart”功能断开连接,或者您从Microsoft添加了一些新的安全补丁,阻止宏启动。@Robert-或者有人关闭了模板中的宏,然后将其保存在共享文件夹中的模板上。我见过这种情况太多次了,无法计数。@Justin:如何关闭模板中的宏?这不是一个应用程序选项吗?