怎样利用vba自动生成word报告

如题所述

以下是自行编写的代码实例片段,供参考:

'===================
'生成分析报告
'===================

Private Sub btnDtyp_Click()

sPathName = ThisWorkbook.Path & "\模板\" & "动态研判分析.doc"
Set WordApp = CreateObject("Word.Application") '生成WORD对象
WordApp.Visible = True
Set WordDoc = WordApp.Documents.Add(sPathName)

With Sheet6
sText = "{ksrq}" '开始日期
sReplace = Format(Range("D1").Value, "YYYY年M月DD日")
WordDoc.Range.Find.Execute sText, False, True, False, False, False, True, 0, False, sReplace, 2

sText = "{jsrq}" '结束日期
sReplace = Format(Range("F1").Value, "YYYY年M月DD日")
WordDoc.Range.Find.Execute sText, False, True, False, False, False, True, 0, False, sReplace, 2

sText = "{zj}" '总计人数
sReplace = .Range("E48").Value
WordDoc.Range.Find.Execute sText, False, True, False, False, False, True, 0, False, sReplace, 2

sText = "{nan}" '男性人数
sReplace = .Range("B33").Value
WordDoc.Range.Find.Execute sText, False, True, False, False, False, True, 0, False, sReplace, 2

sText = "{nv}" '女性人数
sReplace = .Range("B34").Value
WordDoc.Range.Find.Execute sText, False, True, False, False, False, True, 0, False, sReplace, 2


sText = "{jyrs}" '就业人数
sReplace = .Range("B84").Value + .Range("B85").Value
WordDoc.Range.Find.Execute sText, False, True, False, False, False, True, 0, False, sReplace, 2

sText = "{jxrs}" '就学人数
sReplace = .Range("B86").Value
WordDoc.Range.Find.Execute sText, False, True, False, False, False, True, 0, False, sReplace, 2


End With

sFileName = "分析记录(" & Range("D1").Value & "至" & Range("F1").Value & ").doc"
WordApp.ChangeFileOpenDirectory "E:\分析报告\"
WordDoc.SaveAs Filename:=sFileName, FileFormat:=wdFormatDocument

End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-06-12

网页链接

vba自动生成word报告大多可以解决简单的逻辑替换工作,对于生成逻辑比较复杂的报告还需更加专业的生成系统才行。推荐你看看以上链接

相似回答