excel圖表是怎么合并多個工作簿中的數據

      網友投稿 543 2025-03-31

      excel圖表是怎么合并多個工作簿中的數據

      我們使用代碼快速合并超過5 個Excel工作簿文件,然而,如果要合并的工作簿中工作表的名稱不相同,但位于每個工作簿的第1個工作表;并且,要在合并后的工作表的第1列中輸入相對應的工作簿文件名,以便知道合并后的數據來自哪個工作簿文件。

      同樣,可以使用VBA代碼快速解決。多的話不說,先上代碼:

      Sub Combine()

      Dim fn, e

      Dim ws As Worksheet

      Dim flg As Boolean

      Dim LastR As Range

      Dim wsName As String

      ‘打開選擇文件對話框

      fn = Application.GetOpenFilename _

      (“Excel(*.xls*),*.xls*”,MultiSelect:=True)

      ‘如果沒有選取文件,則退出

      If Not IsArray(fn) Then Exit Sub

      ‘在當前工作簿中添加新工作表

      Set ws = ActiveWorkbook.Sheets.Add

      ‘將新添加的工作表命名為Combined

      ws.Name = “Combined”

      ‘將新添加的工作表賦值給變量ws

      Set ws =ActiveWorkbook.Sheets(“Combined”)

      ‘關閉屏幕刷新

      Application.ScreenUpdating = False

      ‘清除工作表中的數據

      ws.Cells.Clear

      ‘遍歷選取的工作簿文件

      For Each e In fn

      ‘打開要從中獲取數據的文件

      With Workbooks.Open(e)

      ‘選取文件中的第1個工作表

      With .Sheets(1)

      ‘獲取工作表名并賦給變量

      wsName = .Name

      ‘如果變量flag值為False則執行條件語句

      If Not flg Then

      ‘將打開的文件的第1個工作表中的第1行數據

      ‘復制到開頭新添加的Combined工作表第1行

      .Rows(1).Copy ws.Cells(1)

      ‘在Combined工作表中的開頭插入一列

      ws.Columns(1).Insert

      ‘在插入的列的首行輸入”Sheetname”

      ws.Cells(1).Value =”Sheet name”

      ‘設置變量flag值為True

      flg = True

      End If

      ‘獲取新添加的Combined工作表第2列

      ‘最后一個數據單元格之后的空單元格

      ‘注意End屬性后括號中的2表示最后單元格之后的單元格

      ‘若括號中的數字為1則表示最后數據單元格

      Set LastR =ws.Cells(Rows.Count, 2).End(xlUp)(2)

      ‘打開的工作簿第1個工作表中當前數據區域

      With.Range(“A1”).CurrentRegion

      ‘除去標題行后的數據區域

      With .Resize(.Rows.Count -1).Offset(1)

      ‘復制到Combined工作表中

      .Copy LastR

      ‘偏移到第1列并將區域擴展到與相鄰列已使用數據區域

      ‘相同的行數.注意LastR(, )的用法

      ‘GetBasename方法獲取文件路徑的最后部分

      ‘即工作簿文件名,不包含擴展名

      LastR(, ).Resize(.Rows.Count).Value = _

      CreateObject(“Scripting.FileSystemObject”).GetBasename(e)

      End With

      End With

      End With

      ‘關閉要從中獲取數據的工作簿文件

      .Close False

      End With

      Next

      ‘自動調整列寬

      ws.Range(“A1”).CurrentRegion.Columns.AutoFit

      ‘打開屏幕刷新

      Application.ScreenUpdating = True

      Set ws = Nothing

      End Sub

      代碼遍歷所選擇的每個工作簿文件,將數據依次添加到新增加的工作表中,同時在工作表首列添加工作簿文件名。我對每行代碼都進行了詳細的注釋,可以參照來理解代碼。

      有幾句代碼需要特別說明:

      1.代碼:

      ws.Cells(Rows.Count, 2).End(xlUp)(2)

      注意到最后的括號和放置在其中的數字2,這表明在工作表第2列中最后一個數據單元格之后的空單元格。如果將2修改為1,則表明是最后一個數據單元格。

      2.代碼:

      excel圖表是怎么合并多個工作簿中的數據

      LastR(, )

      表明LastR代表的單元格左側的相鄰單元格。

      3.代碼:

      CreateObject(“Scripting.FileSystemObject”).GetBasename(e)

      中的GetBasename方法返回一個字符串,包含文件路徑的最后部分,不包含擴展名。例如,若文件路徑為“C:\ Excel\excelvba.xlsm”,則返回“excelvba”。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:【小程序】013 自定義歌曲列表組件
      下一篇:Tello無人機的使用筆記之dji-sdk/Tello-Python
      相關文章
      中文字幕亚洲一区二区三区| 亚洲av无码有乱码在线观看| 亚洲成a人无码av波多野按摩| 亚洲 欧洲 自拍 另类 校园| 亚洲另类视频在线观看| 2022年亚洲午夜一区二区福利| 亚洲成AV人片在线观看无| 亚洲中文字幕日产乱码高清app| 亚洲日本一区二区三区在线不卡| 亚洲精品无码成人| 亚洲人成色在线观看| 亚洲欧美日韩综合俺去了| 亚洲熟妇无码一区二区三区导航 | 国产AV无码专区亚洲AV麻豆丫| 最新亚洲卡一卡二卡三新区| 在线a亚洲老鸭窝天堂av高清| 亚洲综合精品第一页| 亚洲精品乱码久久久久蜜桃| 亚洲国产精品无码久久九九大片| 亚洲综合无码无在线观看| 亚洲av无码偷拍在线观看| 日韩色日韩视频亚洲网站| 亚洲精品第一国产综合境外资源 | 亚洲区小说区图片区| 亚洲真人日本在线| 亚洲色精品vr一区二区三区| 亚洲第一极品精品无码久久| 亚洲人成亚洲精品| 亚洲综合免费视频| 33333在线亚洲| 亚洲精品无码aⅴ中文字幕蜜桃| 亚洲欧美熟妇综合久久久久| 国产亚洲午夜精品| 亚洲精品国产福利一二区| 丁香五月亚洲综合深深爱| 亚洲av无码国产精品色午夜字幕| 亚洲一区免费观看| 亚洲综合校园春色| 理论亚洲区美一区二区三区| 亚洲黄片手机免费观看| 国产亚洲无线码一区二区 |