2017-10-12 66 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 

是否可行,然后将该代码与您遇到问题的文档一起使用,并确定您的字段名称是否是您认为的字段名称