2017-10-12 64 views
-5

因此,對於背景,我從另一個部門獲得了一個excel工作簿,這個工作簿充滿了特定帳戶的信息,然後我使用這些信息並使用特定部分在Word中創建圖表。有沒有一種方法可以創建一個宏來獲取Ex的數據。 C22:H34,把它放到一個模板word文檔中,並可能自動填充圖形?我想讓它成爲一個可以交給別人去做的過程,所以執行起來越簡單,越好。Word中的Excel表格部分用宏

這裏是我有什麼

Sub AutoNew() 
' 
' AutoNew Macro 
' 
' 
Dim xlapp As Object 
Dim xlbook As Object 
Dim xlsheet As Object 
Dim bstartApp As Boolean 
Dim i As Long 
On Error Resume Next 
Set xlapp = GetObject(, "Excel.Application") 
If Err Then 
    bstartApp = True 
    Set xlapp = CreateObject("Excel.Application") 
End If 
On Error GoTo 0 
Set xlbook = xlapp.Workbooks.Open("C:\Users\MattsonC\Documents\work\Copy of 
3202_2018_Renewal Rate Workbook v2 EDIT.xlsx") 
Set xlsheet = xlbook.Sheets(1) 
With xlsheet.Range("A1") 
    For i = 1 To .CurrentRegion.Rows.Count - 1 
     ActiveDocument.Variables(.Offset(i, 0)).Value = .Offset(i, 2) 
    Next i 
End With 
xlbook.Close 
If bstartApp = True Then 
    xlapp.Quit 
End If 
Set xlapp = Nothing 
Set xlbook = Nothing 
Set xlsheet = Nothing 
ActiveDocument.Range.Fields.Update 
End Sub 

我有所有我想要的數據,在模板中去的地方,如{DOCVARIABLE LLY}完成變量,並更名爲Excel中的細胞具有相同的變量名。

我不能在我的Word文檔中得到任何輸出,有什麼建議嗎?

謝謝!

+3

是的,它可以完成,但你能告訴我們你自己先嚐試了什麼嗎? – dwirony

+0

你在那條線上有什麼錯誤? – dwirony

+0

您是否嘗試過使用'Sheets'集合,即'Set xlsheet = xlbook.Sheets(1)'? – YowE3K

回答

0

回到開始

一個新的Word文檔中插入文檔變量使用下列順序(字2016)

insert tab … text … quick parts … field … categories: document automation … field names: docVariable … put in variable name xxxx 

然後運行該代碼

Sub aaa() 

    'ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes ' toggle field code view 
    Stop 
    ActiveWindow.View.ShowFieldCodes = True 
    Stop 
    ActiveWindow.View.ShowFieldCodes = False 

    ActiveDocument.Variables("xxxx").Value = "abc123" 
    ActiveDocument.Range.Fields.Update 

    Stop 

    ActiveDocument.Variables("xxxx") = "xyz987" 
    ActiveDocument.Fields.Update 

End Sub 

是否可行,然後將該代碼與您遇到問題的文檔一起使用,並確定您的字段名稱是否是您認爲的字段名稱