当我从Access运行VBA时,如何在MS Word中添加新的Fieldcode
问题描述:
我将从访问中生成一个文档,并希望在文档中使用字段代码“ListNum”。我有以下宏从MS字正确运行时正确地将字段代码添加到文档中。当我从Access运行VBA时,如何在MS Word中添加新的Fieldcode
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
"LISTNUM LegalDefault ", PreserveFormatting:=False
然而,当我在访问通过Word对象运行这个从VBA似乎没有工作。访问中的代码如下。
Dim objApp As Object
Set objApp = GetObject("Word.Application")
Set objApp = CreateObject("Word.Application")
objApp.Visible = True
Set Word = objApp
With Word
.Documents.Add
.activedocument.Fields.Add Range:=.Selection.Range, Type:=wdFieldEmpty, Text:="LISTNUM LegalDefault ", PreserveFormatting:=False
End With
如果我使用“运行”功能
Word.Run "ListNum"
从访问调用字它的工作原理也一样,虽然我可以用这个宏,它,因为它依赖于用户具有的效果并不理想这个宏在他们的模板中
感谢您的任何提示。
答
仅供参考,修复似乎是以下
Type:=wdFieldEmpty
移动到字似乎时,使用恒定值,这是做correc的事情,下面一行没有得到认可的访问可代替
.activedocument.Fields.Add Range:=MyRange, Type:=-1, Text:="LISTNUM LegalDefault "
我发现常数使用Word对象资源管理器。
如果使用迟绑定(即没有对Word对象模型的引用设置),则适用于所有Word常量。 - 确保在每个模块的顶部有['Option Explicit'](https://msdn.microsoft.com/en-us/library/bw9t3484%28v=vs.84%29.aspx)。 它在编译时执行变量声明并报告未声明或拼写错误的变量/常量,所以它在运行时不会咬你。 要在新模块中自动执行此操作,请在VBA编辑器中设置[需要变量声明](http://www.fmsinc.com/microsoftaccess/modules/options/index.html)选项。 – Andre
是的,我刚才遇到类似的问题,并忘记了这一点。我有一个错误处理程序,我还没有正确定义此模块,它没有提供错误消息,只是跳过它(当时我告诉它要做的)从我睡眠的时刻,但所有排序现在!谢谢。 –