将Excel数据导出到Word模板

时间:2015-03-16 14:57:10

标签: excel vba excel-vba

ID          Employee    Date       
1234        me          11/03/2015
9999        U           11/03/2015
1111        Us          11/03/2015 

嗨,

我在excel中有上表,当用户完成用户表单并点击“保存”时,会填充该表。按钮。一旦他们保存了出口'按钮已启用,用户可以将用户表单提交的最后一条记录(行)导出到模板上相关位置的单词模板。我在ID,员工和日期的附加单词模板中创建了书签,并希望将数据导出到这些位置。

我已经在'导出'上写了以下代码。按钮,但我似乎无法让出口工作。代码会一直运行,直到模板打开,但将数据发布到书签会导致错误。

Sub PDFExportRow()
    Dim WRD As Object, DOC As Object, ac As Long
    On Error Resume Next
    Set WRD = CreateObject("Word.Application")
    If Err.Number <> 0 Then
  Set WRD = CreateObject("Word.Application")
  End If
  On Error GoTo 0

  Set DOC = WRD.Documents.Open("C:\RC_QA_TEST\Template\QA_REPORT.dotm")


WRD.Visible = True
ac = ActiveCell.Row

With DOC
.FormFields("ID").Result = Cells(ac, "A")
.FormFields("Employee").Result = Cells(ac, "B")
.FormFields("Date").Result = Cells(ac, "C")

End With

'set active printer to one you use here
WRD.ActivePrinter = "CutePDF Writer"
'print document
DOC.PrintOut
'close document without saving
DOC.Close False
'close application
WRD.Quit
Set WRD = Nothing
Set DOC = Nothing


End Sub

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果代码从DOC.FormFields部分开始有错误,那么我认为问题是你没有实际使用表单字段,你已经使用了书签,所以你需要使用适当的方法。

试试这个:

With DOC
.Bookmarks("ID").Range.Text = Cells(ac, "A")
.Bookmarks("Employee").Range.Text = Cells(ac, "B")
.Bookmarks("Date").Range.Text = Cells(ac, "C")

End With

请注意,更新书签中的文本后,书签将从文档中删除。由于您在未保存的情况下关闭文档,因此当您重新打开时,书签将再次出现,但如果要保存单词doc,则需要重置书签,或者保持打开并尝试再次替换文本。