gpt4 book ai didi

vba - 让我开始编程和调试 Microsoft Office 自动化

转载 作者:行者123 更新时间:2023-12-01 05:46:23 25 4
gpt4 key购买 nike

我正在使用 Microsoft Office 2003 并创建一堆模板文档来标准化某些任务。我在 Superuser.com 上问过这个问题并没有得到回应,所以我认为这太程序化了,希望我能在这里有更好的运气。

我需要自动化使用一堆 Office(主要是 Word)模板的工作流程。我想要的是在共享驱动器上的“我的 Foo Bar Stuff”中有“我的模板 Foo.dot”和“我的模板 Bar.dot”等,并让用户双击模板以创建新的 Foo 或酒吧。

我真正想要的是用户双击 Foo 模板并被提示输入与他们的任务相关的几个项目(例如,项目编号)并在模板中使用脚本更改 Save 的名称默认为“Foo for Project 1234.doc”之类的内容。

我问 Google Groups并得到了一个有效的答案....一段时间。然后我的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”常见问题解答的指针。谢谢。

更新:如果我创建一个新模板(新建...,空白文档,另存为“我的新模板.dot”),然后插入 AutoNew()宏,它的工作原理。那么是什么阻碍了它在我现有的模板上工作呢?

更新 2:从我的旧模板中删除模块和功能并将其添加回来也可以。

最佳答案

您可以将模板附加到保存的文档中,以便访问相关模板中包含的宏。

您可以使用 Document 对象(即 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

MSDN - Word 2003 VBA Language Reference - AttachedTemplate Property

希望有帮助。

关于vba - 让我开始编程和调试 Microsoft Office 自动化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1701936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com