2012-07-13 58 views
1

我正在使用Excel 2010 VBA以編程方式生成Word 2010文檔。
當我嘗試將ListTemplate應用於我插入的段落之一(下面的代碼中的第5行)時,程序崩潰。MS Word在應用ListTemplate後崩潰

thisValue = tempSheet.Cells(i, 1).Value 
.Content.InsertAfter thisValue 
.Content.InsertParagraphAfter 
Set thisRange = .Paragraphs(i).Range 
thisRange.ListFormat.ApplyListTemplate ListTemplate:=ListGalleries(wdBulletGallery).ListTemplates(1) 

引發的誤差如下所示:

運行時錯誤 「-2147023170(800706BE)」
自動化錯誤
的遠程過程調用失敗。

整個過程:

Sub MoveDataToWord(ByRef tempSheet As Worksheet) 

Dim wrdApp As Word.Application 
Dim wrdDoc As Word.Document 
Set wrdApp = CreateObject("Word.Application") 
wrdApp.Visible = True 
Set wrdDoc = wrdApp.Documents.Add 
With wrdDoc 
    For i = 1 To tempSheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 
     thisValue = tempSheet.Cells(i, 1).Value 
     .Content.InsertAfter thisValue 
     .Content.InsertParagraphAfter 
     Set thisRange = .Paragraphs(i).Range 
     thisRange.ListFormat.ApplyListTemplate ListTemplate:=ListGalleries(wdBulletGallery).ListTemplates(1) 
    Next i 
End With 
Set wrdDoc = Nothing 
Set wrdApp = Nothing 
End Sub 
+0

你是遲到還是早結合詞?如果您使用的是晚期綁定,請嘗試用'1'替換'wdBulletGallery',然後重試。 – 2012-07-13 14:31:11

+0

不確定我是遲到還是早期綁定,我從Excel打電話。無論如何,我用1測試它,並收到相同的錯誤。 – user984165 2012-07-13 14:52:11

+0

代碼的語法是正確的。我能看到完整的程序嗎? – 2012-07-13 14:56:49

回答

2

ListGalleries是Word應用程序內的對象。要訪問它,我需要使用wrdApp.ListGalleries。固定的代碼行如下所示。

thisRange.ListFormat.ApplyListTemplate ListTemplate:=wrdApp.ListGalleries(wdBulletGallery).ListTemplates(1)