可处理单个word,也可批量处理多个word。
一、单个单元格的值填入word
1、书签方法
首先在word模板中需要填入数据的地方创建书签。如将单元格A1的值填入书签A中,参考VBA代码如下:
wdoc.Bookmarks("书签A").Range.Text = Sheet1.Range("A1").Value
若word中有多个不同的书签需要填入不同的数据,可使用For循环解决。如有10个书签,需要填入对应的值,参考VBA代码如下:
For n= 1 to 10
wdoc.Bookmarks("书签"& n).Range.Text = Sheet1.Range("A"& n).Value
next
2、替换方法
将A替换为B,也可使用For循环批量替换,参考VBA代码如下:
for b= 1 to 10
for n= 1 to 10
A = Sheet1.Cells(1, b).Value '替换前内容
B = Sheet1.Cells(n, b).Value '替换后内容
wdoc.Content.Find.Execute findText:=A, ReplaceWith:=B, Replace:=wdReplaceAll
next
next
二、连续的单元格区域填入word
1、书签方法
如将单元格区域A1:E5填入书签A中,参考VBA代码如下(以表格的形式填入):
Set rngTable = Sheet1.Range("A1:E5")
rngTable.Copy
wdoc.Bookmarks("书签A").Range.PasteExcelTable _
LinkedToExcel:=False, _
WordFormatting:=False, _
RTF:=False
同理,也可使用For循环批量填入多个区域,参考VBA代码如下:
For n= 1 to 10
Set rngTable = Sheet1.Range("A1").offset(5*n-5,0).resize(5,5)
rngTable.Copy
wdoc.Bookmarks("书签"& n).Range.PasteExcelTable _
LinkedToExcel:=False, _
WordFormatting:=False, _
RTF:=False
Next
2、通过word中的内容定位数据填入的位置
此方法比书签方法更加灵活。在A列中对应数据首行填入word中的位置定位内容,B-F为数据区域。参考VBA代码如下:
若需要此部分的代码,请关注后留言。
三、将excel中的图形复制至word中
可使用For循环批量复制插入图形(以图片的形式插入到word中)。参考VBA代码如下:
Set chartObj1 = Sheet1.ChartObjects(n)
chartObj1.Chart.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Set wdRange = wdoc.Bookmarks("书签"& n).Range
wdRange.Paste
感谢每一次点赞与转发分享!
夜雨聆风