如何使用VBA代碼將Word的表格批量寫入Excel?

2021-02-14 VBA編程學習與實踐

……雖然表面上 我還是完整 那個我

可是身體𥚃 有個什麼 已被刺破

HI,大家好,我是星光。大家中午都好啊……呃……不知道該說什麼了,還是直接說正事吧……

話說我最近比較懶……不是,我最近事情比較多……你們在後臺提了很多問題,有一部分是我們之前分享過的,戳菜單【VBA相關】→【常用小代碼】,可見詳情;還有一部分是我們還沒有分享過,以後會分享……

當然啦,以後可能是很久,也可能就在明天……不過話說回來,明天的事誰說的準呢?

有蠻多的朋友詢問VBA多文件協同應用的問題,比如如何將Excel的數據寫入PPT文件?如何將Word的數據寫入Excel?

……

所以我們今天分享的VBA小代碼的內容是:

如何將Word文件的表格數據批量寫入Excel?

比如說,有一個Word文件,裡面有十幾張表格,現在急需將每個表格的數據複製到Excel,每個表格自成一份Sheet,關鍵是很不巧,你的秘書MISS李請假一個月回老家了……

操作動畫如下:

代碼如下

Sub GetWordTable()    Dim WdApp As Object    Dim objTable As Object    Dim objDoc As Object    Dim strPath As String    Dim shtEach As Worksheet    Dim shtSelect As Worksheet    Dim i As Long    Dim j As Long    Dim x As Long    Dim y As Long    Dim k As Long    Dim brr As Variant    Set WdApp = CreateObject("Word.Application")    With Application.FileDialog(msoFileDialogFilePicker)        .Filters.Add "Word文件", "*.doc*", 1        '只顯示word文件        .AllowMultiSelect = False        '禁止多選文件        If .Show Then strPath = .SelectedItems(1) Else Exit Sub    End With    Application.ScreenUpdating = False    Application.DisplayAlerts = False    Set shtSelect = ActiveSheet    '當前表賦值變量shtSelect,方便代碼運行完成後葉落歸根回到開始的地方    For Each shtEach In Worksheets    '刪除當前工作表以外的所有工作表        If shtEach.Name <> shtSelect.Name Then shtEach.Delete    Next    shtSelect.Name = "EH看見星光"    '這句代碼不是無聊,作用在於……你猜……    '……其實是避免下面的程序工作表名稱重複    Set objDoc = WdApp.documents.Open(strPath)    '後臺打開用戶選定的word文檔    For Each objTable In objDoc.tables    '遍歷文檔中的每個表格        k = k + 1        Worksheets.Add after:=Worksheets(Worksheets.Count)        '新建工作表        ActiveSheet.Name = k & "表"        x = objTable.Rows.Count        'table的行數        y = objTable.Columns.Count        'table的列數        ReDim brr(1 To x, 1 To y)        '以下遍歷行列,數據寫入數組brr        For i = 1 To x            For j = 1 To y                brr(i, j) = "'" & Application.Clean(objTable.cell(i, j).Range.Text)                'Clean函數清除制表符等                '半角單引號將數據統一轉換為文本格式,避免身份證等數值變形            Next        Next        With [a1].Resize(x, y)            .Value = brr            '數據寫入Excel工作表            .Borders.LineStyle = 1            '添加邊框線        End With    Next    shtSelect.Select    objDoc.Close: WdApp.Quit    Application.ScreenUpdating = True    Application.DisplayAlerts = True    Set objDoc = Nothing    Set WdApp = Nothing    MsgBox "共獲取:" & k & "張表格的數據。"End Sub


代碼已有注釋說明,這裡就不再囉嗦了。

如果你還不懂如何運行VBA代碼可以參考以下連結:

就醬~

揮手 祝安~

右下角↘你懂得~

相關焦點

  • Excel vba 利用定義名稱實現用戶登錄功能
    (文章附代碼,參考學習)定義名稱在Excel中運用很方便,對於一些固定內容選擇用定義名稱來做下拉列表十分好,平時在做表格的時候經常會用到。如何用定義名稱來對用戶進行管理其實,名稱以隱式狀態存儲,一般情況下也不會去檢查是否存在,特別是一些剛學習excel的人來說,對此也並不十分了解。所以,在隱蔽性來說,有一點點可取之處。
  • excel表格怎麼轉換成word表格?簡答易學的方法教給你!
    大家在日常工作中會經常用到Excel表格嗎?它是微軟辦公套裝軟體的一個重要的組成部分,支持各種數據的處理、統計分析和輔助決策等操作,一般應用於管理、統計財經、金融等領域。最近,我也用它來製作了好幾份資料,比如國慶客戶經營策略、雙十一工作安排表等。
  • 利用VBA代碼,對Excel表格進行字體設置
    No.1字體設置是Excel或Word辦公軟體最簡單的操作,下面把所有字體對象的屬性羅列一遍,介紹一下,如何使用vba代碼進行相應的字體設置。下圖為字體對象Font的所有屬性。一共18個。下面重點看一下代碼,如何來實現。
  • Excel表格如何設置漸變色,vba編程進階學習,深度講解
    No.1Excel中給表格設置一些顏色,對於表格的觀賞性,還是很好的。如何利用VBA對表格進行漸變色設置,這就需要我們有一個十分熱情來掌握其方法。下圖為設置一個漸變色的效果,顏色不太好,但其功能可以實現。
  • EXCEL表格詳解vlookup第五彈-VBA自己寫myLookup函數
    我們在前四彈詳細介紹了vlookup函數,以及vlookup函數實現不了後,使用index為主函數加match,small,if等函數的組合拳來實現複雜的條件查找。下面我就手把手地帶大家寫一個自己的函數myLookup() ,使用這一個函數來實現前四彈的所有功能。第一步:打開Excel的vba編輯器,菜單欄找到 「開發工具」 --> 「Visual Basic」,或者按 Alt + F11,打開 VBA 編輯器,開始我們的代碼之旅。如下圖。
  • Excel VBA操作電子表格兩大重要屬性詳解
    為此,本文詳細講解如何使用excel VBA中的對象使用以及如何使用VBA操作電子表格,旨在讓大家理解編程的核心,理解常用功能的引用,幫助大家快速實現辦公自動化。在excel中,VBA的對象、屬性、方法和事件非常多,很多其實我們在工作中很少用,如果全部都詳細的介紹,難免會加重大家學習的負擔。因此,本文主要介紹常用的、必須會的兩種常用的電子表格操作方式,讓大家能夠在原有的基礎上進行VBA開發。
  • 如何實現在WORD中打開EXCEL文件
    ⑤ mystr = XLApp.Sheets(1).Range("A1").Value這句和本講的內容沒有任何關係,只是給代碼人員留出了一句示例,假如我們想提取打開的EXCEL文件中某個單元格的數據到word文檔中就可以使用這樣的語句了。Mystr就是我們獲得的字符串。後續的應用就要看實際需要了。
  • cad如何批量導入坐標?excel坐標批量導入cad的方法
    之前小編和大家分享過CAD軟體批量標註坐標的方法,你知道cad如何批量導入坐標嗎?本文小編將為大家分享excel坐標批量導入cad的方法,感興趣的小夥伴們快和小編一起來看看CAD怎麼批量導入坐標吧!excel坐標批量導入cad的方法如下:步驟一、cad如何批量導入坐標?首先,將要批量導入CAD的高程坐標導入到excel中。步驟二、在excel中新建E列為展點劃線,新建F列為注釋。
  • Excel表格如何批量錄入序列和日期?職場辦公必備的小技巧
    在使用Excel表格辦公時,由於辦公的需求往往也都經常在表格中輸入大量的序列和日期。此時如果我們還採用常規方法去輸入的話,操作起來也都是比較麻煩的,效率也比較低。那麼如何才能快速批量錄入序列號和日期呢?
  • Excel–Office 全家桶來配合,批量密送郵件
    如何批量給客戶發送報價郵件?價格各不相同,且要 BCC 發送? 強烈建議:正式添加客戶郵箱前,先用自己或同事的郵箱測試幾次,確保操作都正確後再發給客戶,以免出錯。
  • excel中2000行數據以行排序,你需要多長時間
    Hello,大家好,今天跟大家分享下我們如何使用錄製宏批量的按照行來對數據排序,這個之前發過視頻,但是很多粉絲表示沒看懂,今天就來詳細的介紹下這種方法一、宏是什麼宏本質上就是我們所說的vba代碼,錄製宏就是將我們的操作記錄下來,將其編譯為vba代碼,當我下次需要重複操作的時候只需要運行宏excel就會幫自動幫我們搞定。
  • Excel表格製作下載_Excel表格製作手機版下載_Excel表格製作安卓版...
    Excel表格製作簡介 學辦公軟體教程for excel表格製作是一款幫助您快速學習和掌握Excel辦公軟體的好工具
  • Word表格如何批量換行呢?
    Word表格如何批量換行呢?說到換行相信大家並不陌生都會,一般都用回車鍵換行,要是換行的很多一個一個的按回車鍵,很沒有效率。那麼批量換行要怎麼做呢?下面小編就簡單介紹一下Word表格如何批量換行,希望能幫到您。首先,準備一些需要批量換行的文本(以古詩為例)。
  • 利用Word郵件合併批量列印帶照片的準考證
    建立一個Excel表格存放員工信息。裡面包含工號、姓名、職務、照片等信息。可能大家認為「照片」列書寫起來比較麻煩。其實只需要寫一個簡單公式「=B2&」.jpg」」,很容易就搞定了。在word中創建一個工作證的模版文件,如圖所示。
  • 用excel製作文件管理器,所有版本皆可使用
    Hello,大家好,之前跟大家分享了使用excel中的power query功能製作一個文件管理器,但是很多分析反應自己的excel版本不夠高,無法使用,今天就跟大家分享如何使用宏表函數製作文件管理器,他也是可以實現文件刷新的,這個的操作也不難,下面就讓我們來看下他是如何設置的一、什麼是宏表函數以及FILES函數
  • Excel vba 更換窗體背景顏色 附:代碼
    (文章結尾附代碼)動態效果單擊滑鼠,可實現隨機更換背景。設置背景函數setFormBackColor()功能:隨機選擇數組值,為背景色賦值窗體代碼截圖窗體代碼和按鈕代碼,分別調用設置背景函數。窗體代碼Private Sub UserForm_Initialize()Call setFormBackColor(Me)End Sub按鈕代碼
  • 【Excel技巧】Excel中如何批量刪除超連結
    如果超連結少還可以這麼一個一個手動清除,但如果包含有超連結的單元格多了則需要考慮批量刪除的方法了。如何批量刪除Excel表格中的所有超連結,可以採取以下兩種方法:方法一:快捷鍵法依次按如下3個快捷鍵即可全部刪掉Excel中的超級連接:先按ctrl+A (即同時按住ctrl鍵和A鍵)選中表格,然後按 ctrl+C,最後按回車鍵(Enter)即可刪除所有超連結。
  • 如何用Python讀取Excel中圖片?
    公眾號: 早起Python作者:劉早起大家好,在使用Python進行辦公自動化操作時,一定少不了與Excel表格的交互,我們通常是用pandas處理表格數據,但大多數情況下,都是讀取表格中的數值進行分析。
  • 你天天用的excel也可以用來畫畫,這個工具3分鐘搞定!
    最近小妞迷上了一位77歲日本老大爺,他從畫將近20年,讓我敬佩的是他畫畫的工具,居然是我們每天都在用的excel,這幾天小妞打算寫一篇老大爺的傳記給大家學習一下滴,記得隨時過來看看啦。今天就針對excel主題,告訴大家這個用excel就能畫畫的技能,這個說出都很有面兒有木有。