日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

word表格图片自动适应表格大小_Excel应用实践20:使用Excel中的数据自动填写Word表格...

發(fā)布時(shí)間:2024/7/23 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 word表格图片自动适应表格大小_Excel应用实践20:使用Excel中的数据自动填写Word表格... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

學(xué)習(xí)Excel技術(shù),關(guān)注微信公眾號(hào):

excelperfect

我在Excel工作表中存放著數(shù)據(jù),如下圖1所示。

圖1

我想將這些數(shù)據(jù)逐行自動(dòng)輸入到Word文檔的表格中并分別自動(dòng)保存,Word文檔表格如下圖2所示,文檔名為“datafromexcel.docx”。

圖2

解決思路

首先,將需要自動(dòng)填寫的datafromexcel.docx文檔作為模板,并對(duì)每個(gè)要填寫的位置放置書簽。例如,將光標(biāo)移至上圖2所示表格中姓名后的空格,單擊功能區(qū)選項(xiàng)卡“插入——書簽”,在彈出的“書簽”對(duì)話框中輸入書簽名“姓名”,如下圖3所示。

圖3

同樣,在表的其它空格中插入相應(yīng)的書簽,結(jié)果如下圖4所示。

圖4

在Excel工作表中,將相應(yīng)數(shù)據(jù)所在的單元格命名,名稱與要填寫的上圖4中表的書簽名相同。這就需要我們先命名單元格,待將相應(yīng)的數(shù)據(jù)輸出到Word表中后,再刪除這些名稱。然后,移至下一行,再進(jìn)行單元格命名,并將相應(yīng)的數(shù)據(jù)輸出到Word表中,再刪除這些名稱。如此反復(fù),直至工作表每行數(shù)據(jù)均創(chuàng)建了Word文檔。

編寫代碼

按照上述思路,在存放數(shù)據(jù)的Excel工作簿中編寫代碼:

Sub ExportDataToWord()

??? '變量聲明

??? Dim objWord As Object,docWord As Object

??? Dim wb As Workbook

??? Dim xlName As Name

??? Dim Path As String

??? Dim lLastRow As Long

??? Dim i As Long

??? '下面兩個(gè)變量可修改為實(shí)際工作簿和路徑

??? '設(shè)置數(shù)據(jù)所在工作簿

??? Set wb = ActiveWorkbook

??? '要輸入數(shù)據(jù)的Word模板

??? Path = wb.Path & "\datafromexcel.docx"

??? '錯(cuò)誤處理

??? On Error GoTo ErrorHandler

??? '工作簿工作表中最后數(shù)據(jù)行行號(hào)

??? lLastRow =wb.Worksheets("Sheet1").Range("A" &?Rows.Count).End(xlUp).Row

??? '遍歷工作表數(shù)據(jù)行

??? '從中取出數(shù)據(jù)填充Word文檔

??? For i = 2 To lLastRow

??????? '命名名稱

??????? With wb.Worksheets("Sheet1")

???????????.Range("A" & i).Name = Range("A1").Value

???????????.Range("B" & i).Name = Range("B1").Value

???????????.Range("C" & i).Name = Range("C1").Value

???????????.Range("D" & i).Name = Range("D1").Value

??????? End With

??????? '創(chuàng)建新的Word實(shí)例

??????? Set objWord = CreateObject("Word.Application")

??????? '錯(cuò)誤處理

??????? On Error GoTo ErrorHandler

??????? '打開Word文檔

??????? Set docWord = objWord.Documents.Add(Path)

??????? '遍歷當(dāng)前工作簿中的名稱

??????? For Each xlName In wb.Names

??????????? '如果在Word文檔中存在與名稱相同的書簽

??????????? If docWord.Bookmarks.Exists(xlName.Name) Then

??????????????? '將工作表名稱的值放入書簽所在位置

???????????????docWord.Bookmarks(xlName.Name).Range.Text = Range(xlName.Value)

??????????? End If

??????? Next xlName

??????? With objWord

??????????? '激活并顯示W(wǎng)ord文檔

??????????? .Visible = True

???????????.ActiveWindow.WindowState = 0

??????????? .Activate

??????????? '以列A中相應(yīng)單元格中的數(shù)據(jù)命名并保存Word文檔

???????????.ActiveDocument.SaveAs wb.Path & "\" & Range("A" & i).Value & ".docx"

??????????? '退出Word

??????????? .Application.Quit

??????? End With

??????? '釋放對(duì)象

??????? Set objWord = Nothing

??????? '刪除名稱

???????Names(Range("A1").Value).Delete

???????Names(Range("B1").Value).Delete

???????Names(Range("C1").Value).Delete

???????Names(Range("D1").Value).Delete

??? Next i

???? '釋放Word對(duì)象并退出過(guò)程

ErrorExit:

??? Set objWord = Nothing

??? Exit Sub

??? '錯(cuò)誤處理

ErrorHandler:

??? If Err Then

??????? MsgBox "錯(cuò)誤號(hào): " & Err.Number &"; 出問(wèn)題了."

??????? If Not objWord Is Nothing Then

??????????? objWord.QuitFalse

??????? End If

??????? Resume ErrorExit

??? End If

End Sub

代碼中已經(jīng)給出了詳細(xì)的注釋,有興趣的朋友可以仔細(xì)體會(huì)。

運(yùn)行代碼

在運(yùn)行代碼前,要保證代碼所在的工作簿與Word文檔模板datafromexcel.docx在同一文件夾中。運(yùn)行ExportDataToWord過(guò)程,在文件夾中會(huì)生成以列A中的姓名為名稱的Word文檔,如下圖5所示。

圖5

打開任一文檔,結(jié)果都是填寫好了的表格,如下圖6所示。

圖6

代碼的圖片版如下:

總結(jié)

以上是生活随笔為你收集整理的word表格图片自动适应表格大小_Excel应用实践20:使用Excel中的数据自动填写Word表格...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。