利用excel生成word,批量插入圖片、題注、標題等格式
阿新 • • 發佈:2021-01-07
此文轉載自:https://blog.csdn.net/maoersong/article/details/112259199
對於word中需要插入大量型別相似的圖片,使用excel插入圖片、標題、題注等內容是非常方便的,先使用excel編輯好各個圖片對應的標題、題注。
excel中工作表第一列為圖片的標題,第二列為圖片路徑。如下圖所示:
使用alt+F11快速進入巨集(VBA)編輯框,VBA程式碼如下,主要修改迴圈的行數(For r = 2 To 4)、儲存word的位置資訊、excel工作表的名稱(例如,這裡的名稱為報表):
Sub 生成word()
Dim wordApp As Word.Application
Application.StatusBar = "正在建立。。。"
Set wordApp = New Word.Application
With wordApp
.Visible = False
Application.StatusBar = "正在建立word"
.Documents.Add
For Each sh In ActiveWorkbook.Sheets
If sh.Name = "報表" Then '此處可根據需要自行設定或者刪除改語句
For r = 2 To 4
figtitle = sh.Cells(r, 1).Value
figpath = sh.Cells(r, 2).Value
.Selection.TypeText Text:=figtitle
' 此處"標題 3"為3級標題格式,可根據自己的word實際情況進行修改
.Selection.Style = .ActiveDocument.Styles("標題 3")
'新增新的段落
.Selection.TypeParagraph
'根據路徑插入圖片
.Selection.InlineShapes.AddPicture Filename:=figpath, LinkToFile:=False, SaveWithDocument:=True
'新增新的段落
.Selection.TypeParagraph
' .LockAspectRatio = msoFalse '取消圖片大小縱橫比的鎖定
'
' .Height = 285 '設定圖片高度為 400px
' .Width = 374 '設定圖片寬度 300px
Next
End If
Next
Application.StatusBar = "正在儲存"
'生成word的儲存路徑,可根據實際情況修改
.ActiveDocument.SaveAs2 ("F:\圖片.docx")
Application.StatusBar = "正在退出"
.Quit
End With
Set wordApp = Nothing
Application.StatusBar = False
End Sub
遇到的錯誤:
1 使用者定義型別未定義(定位錯誤在Dim wordApp As Word.Application),原因在於程式碼中引用相關控制元件的方法有問題。對此我們首先需要加入對控制的支援庫,然後方可在編輯中引用對應控制元件。
引用對應支援庫的方法:在VBA環境下,點選“工具"->”引用 “項。如果“引用”為灰色不可選狀態,則點選停止執行程式按鈕即可恢復。
然後在開啟的”引用“視窗中,勾選相應的項,點選”確定“即可完成支援庫的匯入操作。
這裡Microsoft Word 16.0 Object Library的預設路徑不對,需要根據實際位置進行修改,點選瀏覽按鈕選擇相應的檔案即可,我的路徑為“D:\Program Files\Microsoft Office\Office16\MSWORD.OLB”
批量插入題注等資訊參考:
批量匯入圖片到word並新增檔名
利用excel生成word並在其中批量插入圖片和題注、文字描述等內容