2017-10-11 96 views
0

我將從訪問中生成一個文檔,並希望在文檔中使用字段代碼「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" 

從訪問調用字它的工作原理也一樣,雖然我可以用這個宏,它,因爲它依賴於用戶具有的效果並不理想這個宏在他們的模板中

感謝您的任何提示。

回答

0

僅供參考,修復似乎是以下

Type:=wdFieldEmpty 

移動到字似乎時,使用恆定值,這是做correc的事情,下面一行沒有得到認可的訪問可代替

.activedocument.Fields.Add Range:=MyRange, Type:=-1, Text:="LISTNUM LegalDefault " 

我發現常數使用Word對象資源管理器。

+1

如果使用遲綁定(即沒有對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

+0

是的,我剛纔遇到類似的問題,並忘記了這一點。我有一個錯誤處理程序,我還沒有正確定義此模塊,它沒有提供錯誤消息,只是跳過它(當時我告訴它要做的)從我睡眠的時刻,但所有排序現在!謝謝。 –