Sub 合并數(shù)據(jù)()Dim n As IntegerSheets.Add before:=Sheets(1) '新建一個sheet,使得這個sheet用來存放結果,且是第一個
如何利用VBA實現(xiàn)多個Excel工作簿快速合并呢?下面就來簡單介紹一下其操作步驟。
材料/工具
VBA,Excel,電腦
'把要匯總的工作簿放在同一文件夾下,再建一個匯總工作簿,把下面代碼放入?yún)R總工作簿中。 Sub ABCD() Dim lj As String Dim dirname As String Dim nm As String lj = ActiveWorkbook.Path nm = ActiveWorkbook.Name dirname = Dir(lj & "*.xls
方法
首先,按組合鍵“ALT+F11”打開VBE編輯器,在工程窗口下的“Microsoft Excel”對象進行單擊鼠標右鍵,再在彈出的框再進行如圖所示的操作。
1原始數(shù)據(jù)所在工作簿包含多個格式相同的工作表,只不過每個工作表內(nèi)容不同,比如說不同人名的工作表數(shù)據(jù)或者不同部門填寫的數(shù)據(jù)。 2在原始數(shù)據(jù)同目錄下新建一個工作簿,建立兩個工作表,名稱分別為“首頁”和“合并匯總表”。 3按Alt+F11進入VBA代碼
然后,在其中粘貼下面的代碼:再進行保存。
可以在Excel表格中用下面的VBA程序?qū)崿F(xiàn): Sub Test() '打開當前目錄下文件,將Sheet1信息復制到匯總表上 Dim f$ Dim n& Mypath = ThisWorkbook.Path & "" f = Dir(Mypath & "*.xls*") Do While f > " " n = n + 1 Workbooks.Open Mypath & f Se
Sub 工作簿間工作表合并()
Sub CombineWorkbooks() Dim FilesToOpen, ft Dim x As Integer Application.ScreenUpdating = False On Error GoTo errhandler FilesToOpen = Application.GetOpenFilename _ (FileFilter:="Micrsofe Excel文件(*.xlsx), *.xls", _ MultiSelect
Option Explicit
用一個VBA就可以實現(xiàn)的。 使用方法: 1、新建一個工作薄,將其命名為你合并后的名字。 2、打開此工作保 3、在其下任一個工作表標簽上點擊右鍵,選擇“查看代碼”。 4、在打開的VBA編輯窗口中粘貼以下代碼: Sub 工作薄間工作表合并() Dim FileOpen
Sub hbgzb()
VBA就擅長這類的操作。當然,文件需要在指定的目錄中。你的數(shù)據(jù)還算規(guī)范,做起來沒問題。不知道你的表里邊的時間點是否一致。如果一致就更好處理了。 寫這個VBA不免費,因為需要耗費時間和精力的事。有意向的話可以私信。 另外,WPS免費版的不支
Dim sh As Worksheet, flag As Boolean, i As Integer, hrow As Integer, hrowc As Integer</p> flag = False
說千字,不如一附件 這里有有我以前做的合并文件夾下所有工作簿(包含子目錄)到當前工作表的一個程序 樓主可以參考學習下.
For i = 1 To Sheets.Count
VBA就擅長這類的操作。當然,文件需要在指定的目錄中。你的數(shù)據(jù)還算規(guī)范,做起來沒問題。不知道你的表里邊的時間點是否一致。如果一致就更好處理了。 寫這個VBA不免費,因為需要耗費時間和精力的事。有意向的話可以私信。 另外,WPS免費版的不支
If Sheets(i).Name = "合并數(shù)據(jù)" Then flag = True
我就簡單的給你寫幾句代碼 剩下你自己補充 大概的思路就是 打開待合并的文件,取得workbook對象 然后操作這個打開的工作簿文件的某個表sheets(序號) 因為你行數(shù)未固定 你可以循環(huán)累加X 直到空行再退出循環(huán) X歸零 將單元格內(nèi)容賦值到新表格中 也
Next
If flag = False Then
1、在表格中的加載項中找到“方方格子”選擇匯總拆分功能; 2、在下拉菜單中選擇“合并多表”; 3、選擇全部工作簿,然后選擇需要合并的工作表,不需要合并的,則不在前面勾選; 4、運行后會彈出信息,點擊確定,關閉 5、這樣,在一個新的工作表中,
Set sh = Worksheets.Add
請補充完善問題。 有很多不清楚的地方,如多個EXCEL表就是說多個文件嗎?,每個文件里面有幾個工作表,是只合并第一個還是全部,合并后如果工作表有同名時時該怎樣改名等等,細節(jié)問題要考慮清楚,否則代碼無法運行。
sh.Name = "合并數(shù)據(jù)"
這個問題有些大: 1、“多個工作簿”的的格式、結構是不是相同呢? 2、“多個工作簿”之間有沒有關聯(lián)呢? 3、“相同操作”發(fā)生在不同工作簿的相同位置還是不同位置? …… 解決思路: (如果多個工作簿的格式、結構相同、在相同位置操作),可以采用“錄
Sheets("合并數(shù)據(jù)").Move after:=Sheets(Sheets.Count)
如果是用EXCEL2010以上版本的話 將圖一、二粘貼到一起 再用數(shù)據(jù)透視表來做最快
End If
For i = 1 To Sheets.Count
VBA就擅長這類的操作。當然,文件需要在指定的目錄中。你的數(shù)據(jù)還算規(guī)范,做起來沒問題。不知道你的表里邊的時間點是否一致。如果一致就更好處理了。 寫這個VBA不免費,因為需要耗費時間和精力的事。有意向的話可以私信。 另外,WPS免費版的不支
If Sheets(i).Name <> "合并數(shù)據(jù)" Then
如果經(jīng)常做這樣的表格,建議你下個“方方格子”,去百度下載安裝,安裝完后再打開表格就在你的表任務欄了,可以對工作表和工作簿進行拆分、匯總、合并等等,對數(shù)據(jù)分析幫助很大,一鍵就能拆分、合并等
hrow = Sheets("合并數(shù)據(jù)").UsedRange.Row
正常的啊 Sub 合并當前工作簿下的所有工作表()Application.ScreenUpdating = FalseFor j = 1 To Sheets.CountIf Sheets(j).Name ActiveSheet.Name ThenX = Range("A65536").End(xlUp).Row + 1Sheets(j).UsedRange.Copy Cells(X, 1)End IfNextRan
hrowc = Sheets("合并數(shù)據(jù)").UsedRange.Rows.Count
Sub 匯集數(shù)據(jù)() Dim s As Worksheet c=1 For Each s In ThisWorkbook.Worksheets With s If .Name "匯總表" Then '假設存放結果的工作表叫“匯總表”,如果不是請做相應修改 c = c + 1 For i=1 to 10 '假設你有10列數(shù)據(jù)要拷到匯總表 Sheets("匯總
If hrowc = 1 Then
Sub rm() For i = 1 To Sheet1.UsedRange.Rows.Count If Sheet1.Cells(i, 9) "" Then For j = 1 To 10 Sheet2.Cells(i, j) = Sheet1.Cells(i, j) Next End If If Sheet1.Cells(i + 1, 9) = "" Then If Sheet1.Cells(i, 9) "" Then k = i Sheet2.
Sheets(i).UsedRange.Copy Sheets("合并數(shù)據(jù)").Cells(hrow, 1).End(xlUp)
為什么要用VBA呢.我覺得反而把問題復雜化了 在EXCEL里,可以自己設置一個快捷鍵當作合并單元格的快捷鍵 其他內(nèi)容一樣的,還可以用格式刷,不比VB慢哦~~
Else
Sheets(i).UsedRange.Copy Sheets("合并數(shù)據(jù)").Cells(hrow + hrowc - 1, 1).Offset(1, 0)
涉及到多個工作薄合并 需要循環(huán)遍歷各個工作薄,使用dir或者文件系統(tǒng)fso 下面是參考資料:http://club.excelhome.net/thread-1258425-1-1.html
End If
End If
Next i
End Sub
最快速的方法就是復制粘貼,把所有表的內(nèi)容復制、粘貼到一個新表中。 如果表的個數(shù)成千上萬,可以寫VBA代碼來完成這個復制、粘貼的過程,下面是我寫的代碼,可以ALT+F11之后粘貼使用: sub 宏1() dim i,n for i=2 to sheets.count n=sheets(1).u
然后,關閉該窗口,打開Excel軟件,點擊界面上方的“開發(fā)工具”選項卡。
按ALT+F11調(diào)出VBA窗口,插入一個模塊,然后把下面的代碼復制進去。 Sub hz() Set NewSheet = Sheets.Add(Type:=xlWorksheet) '生成一個新表 Sheets(NewSheet.Index).Move Before:=Sheets(1) '將此新表移動到最前面 For i = 2 To Worksheets.Coun
然后,點擊其下方選項中的“加載宏”。
您是想了解方法嗎?親,“如何用VBA”,這問題太大了~~~~,我努力回答一下吧~~~ 首先您最好把這300多個文檔放在同一個文件夾里。然后,新建一個Excel文件,做一個宏,挨個打開文檔,判斷B1:C45是否為空,然后復制到本文件里或者直接關閉。 做這個
然后,在彈出的框中選擇“工作簿間工作表合并“,再點擊其中的”執(zhí)行“按鈕。
Sub 合并當前目錄下所有工作簿的全部工作表() Dim MyPath, MyName, AWbName Dim Wb As Workbook, WbN As String Dim G As Long Dim Num As Long Dim BOX As String Application.ScreenUpdating = False MyPath = ActiveWorkbook.Path MyName = D
然后,在彈出的窗口中選擇要合并的工作簿,再點擊”打開“即可。
Sub MultiModi()Dim wb As WorkbookDim ws As WorksheetDim fnfn = Dir("盤符:文件所在的完整路徑名*.xls") '取得第一個工作簿的文件名(如果是2007版,則后綴名請改為 *.xlsx)Do While fn "" Set wb = Workbooks.Open(fn) '打開工作簿 For E
這樣,多個工作簿就合并成一個了。
擴展閱讀,以下內(nèi)容您可能還感興趣。
如何用EXCEL中的VBA合并同一資料夾中,多個工作簿的同一個工作表?
說千字,不如一附件
這里copy有有我以前做的合并文件夾下所有工作簿(包含子目錄)到當前工作表的一個程序百
樓主可以參考學習下度.
也可以把問題作為內(nèi)容(郵件主題一定要包含“Form”,本人以此為依據(jù)辨別知非垃圾郵件,以免誤刪)、excel文件(去掉機密內(nèi)容)作為附件發(fā)來看道下 formmr@qq.com 三零三三一三六 二七
求一個VBA,一個文件夾下多個Excel工作簿按條件范圍合并成一個工作表內(nèi)?
VBA就擅長這類的操作。當然,文件需要在指定的目錄中。你的數(shù)襲據(jù)還算規(guī)范,做起來沒問題。不知道你的表里百邊的時間點是否一致。如果一致就更好處理了。
寫這個VBA不免費,度因為需要耗費時間和精力的事。有意向的話可以私信。
另外,WPS免費版的不支持VBA,需要使用問Excel。
如果數(shù)據(jù)規(guī)則,要求明確,通常在用VBA只用點一下按鈕,剩下的交給代碼去答操作了。
思路,就是循環(huán)各個文件,寫入對應的列和行。
如何將不同工作簿里的內(nèi)容合并到同一個表格里面,VBA代碼是什么
我就簡單的給你寫幾句代碼抄 剩下你自己補充 大概的思路就是 打開待合并的文件,取得workbook對象 然后操作這個打開的工作簿文件的某個表sheets(序號) 因為你行數(shù)未固定 你可以循環(huán)累加X 直到知空行再退出循環(huán) X歸零 將單元格內(nèi)容賦值到新表格中 也是累加行數(shù)Y,因為有多個文件Y不歸零Dim X1 As Workbook
Set X1 = Application.Workbooks.Open("文件路徑道.xlsx")
ThisWorkbook.Sheets(1).Cells(y, 1) = X1.Sheets(1).Cells(x, 1)追問請問文件路徑是指 放了我那幾個待合并文件的文件夾嗎?追答c:\test.xlsx
求一個vba合并excel時,如何將多個工作簿合并到一個新建指定工作表?
1、在百表格中的加載項中找到“方方格子”選擇匯總拆分功度能;
2、在下拉菜單中選擇“合并多表”;問
3、選擇全部工作簿,然后選擇需要合并的工答作表,不需要合并的,則不在前面勾選;
4、運行后會彈出信息,點擊專確定,關閉
5、這樣,在一個新屬的工作表中,就匯總了需要的數(shù)據(jù)。追問感謝回答,因公司里的excel沒有更新,暫時還沒有這個功能。
所以只能用vba來實現(xiàn)。
現(xiàn)在就遇到了這個問題。
怎樣利用vba把多個excle表合并一個工作簿下
請補充完善問題。
有很多不清楚的百地方,度如多個EXCEL表就是說多個文件嗎?,每個文件里面有幾個工作表,知是只合并第一個還是全部,合并后如道果工作表有同名版時時該怎樣改名等等,細節(jié)問題要考權慮清楚,否則代碼無法運行。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:0731-84117792 E-MAIL:11247931@qq.com