关闭→
当前位置:科普经验站>IT科技>利用vba实现多个excel工作簿快速合并方法是什么

利用vba实现多个excel工作簿快速合并方法是什么

科普经验站 人气:2.88W

Sub 合并数据()Dim n As IntegerSheets.Add before:=Sheets(1) '新建一个sheet,使得这个sheet用来存放结果,且是第一个

如何利用VBA实现多个Excel工作簿快速合并呢?下面就来简单介绍一下其操作步骤。

材料/工具

VBA,Excel,电脑

'把要汇总的工作簿放在同一文件夹下,再建一个汇总工作簿,把下面代码放入汇总工作簿中。 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原始数据所在工作簿包含多个格式相同的工作表,只不过每个工作表内容不同,比如说不同人名的工作表数据或者不同部门填写的数据。 2在原始数据同目录下新建一个工作簿,建立两个工作表,名称分别为“首页”和“合并汇总表”。 3按Alt+F11进入VBA代码

利用vba实现多个excel工作簿快速合并方法是什么

然后,在其中粘贴下面的代码:再进行保存。

可以在Excel表格中用下面的VBA程序实现: 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就可以实现的。 使用方法: 1、新建一个工作薄,将其命名为你合并后的名字。 2、打开此工作保 3、在其下任一个工作表标签上点击右键,选择“查看代码”。 4、在打开的VBA编辑窗口中粘贴以下代码: Sub 工作薄间工作表合并() Dim FileOpen

Sub hbgzb()

VBA就擅长这类的操作。当然,文件需要在指定的目录中。你的数据还算规范,做起来没问题。不知道你的表里边的时间点是否一致。如果一致就更好处理了。 写这个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就擅长这类的操作。当然,文件需要在指定的目录中。你的数据还算规范,做起来没问题。不知道你的表里边的时间点是否一致。如果一致就更好处理了。 写这个VBA不免费,因为需要耗费时间和精力的事。有意向的话可以私信。 另外,WPS免费版的不支

If Sheets(i).Name = "合并数据" Then flag = True

我就简单的给你写几句代码 剩下你自己补充 大概的思路就是 打开待合并的文件,取得workbook对象 然后操作这个打开的工作簿文件的某个表sheets(序号) 因为你行数未固定 你可以循环累加X 直到空行再退出循环 X归零 将单元格内容赋值到新表格中 也

Next

If flag = False Then

1、在表格中的加载项中找到“方方格子”选择汇总拆分功能; 2、在下拉菜单中选择“合并多表”; 3、选择全部工作簿,然后选择需要合并的工作表,不需要合并的,则不在前面勾选; 4、运行后会弹出信息,点击确定,关闭 5、这样,在一个新的工作表中,

Set sh = Worksheets.Add

请补充完善问题。 有很多不清楚的地方,如多个EXCEL表就是说多个文件吗?,每个文件里面有几个工作表,是只合并第一个还是全部,合并后如果工作表有同名时时该怎样改名等等,细节问题要考虑清楚,否则代码无法运行。

sh.Name = "合并数据"

这个问题有些大: 1、“多个工作簿”的的格式、结构是不是相同呢? 2、“多个工作簿”之间有没有关联呢? 3、“相同操作”发生在不同工作簿的相同位置还是不同位置? …… 解决思路: (如果多个工作簿的格式、结构相同、在相同位置操作),可以采用“录

Sheets("合并数据").Move after:=Sheets(Sheets.Count)

如果是用EXCEL2010以上版本的话 将图一、二粘贴到一起 再用数据透视表来做最快

End If

For i = 1 To Sheets.Count

VBA就擅长这类的操作。当然,文件需要在指定的目录中。你的数据还算规范,做起来没问题。不知道你的表里边的时间点是否一致。如果一致就更好处理了。 写这个VBA不免费,因为需要耗费时间和精力的事。有意向的话可以私信。 另外,WPS免费版的不支

If Sheets(i).Name <> "合并数据" Then

如果经常做这样的表格,建议你下个“方方格子”,去百度下载安装,安装完后再打开表格就在你的表任务栏了,可以对工作表和工作簿进行拆分、汇总、合并等等,对数据分析帮助很大,一键就能拆分、合并等

hrow = Sheets("合并数据").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("合并数据").UsedRange.Rows.Count

Sub 汇集数据() 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列数据要拷到汇总表 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("合并数据").Cells(hrow, 1).End(xlUp)

为什么要用VBA呢.我觉得反而把问题复杂化了 在EXCEL里,可以自己设置一个快捷键当作合并单元格的快捷键 其他内容一样的,还可以用格式刷,不比VB慢哦~~

Else

Sheets(i).UsedRange.Copy Sheets("合并数据").Cells(hrow + hrowc - 1, 1).Offset(1, 0)

涉及到多个工作薄合并 需要循环遍历各个工作薄,使用dir或者文件系统fso 下面是参考资料:http://club.excelhome.net/thread-1258425-1-1.html

End If

End If

Next i

End Sub

最快速的方法就是复制粘贴,把所有表的内容复制、粘贴到一个新表中。 如果表的个数成千上万,可以写VBA代码来完成这个复制、粘贴的过程,下面是我写的代码,可以ALT+F11之后粘贴使用: sub 宏1() dim i,n for i=2 to sheets.count n=sheets(1).u

利用vba实现多个excel工作簿快速合并方法是什么 第2张

然后,关闭该窗口,打开Excel软件,点击界面上方的“开发工具”选项卡。

按ALT+F11调出VBA窗口,插入一个模块,然后把下面的代码复制进去。 Sub hz() Set NewSheet = Sheets.Add(Type:=xlWorksheet) '生成一个新表 Sheets(NewSheet.Index).Move Before:=Sheets(1) '将此新表移动到最前面 For i = 2 To Worksheets.Coun

利用vba实现多个excel工作簿快速合并方法是什么 第3张

然后,点击其下方选项中的“加载宏”。

您是想了解方法吗?亲,“如何用VBA”,这问题太大了~~~~,我努力回答一下吧~~~ 首先您最好把这300多个文档放在同一个文件夹里。然后,新建一个Excel文件,做一个宏,挨个打开文档,判断B1:C45是否为空,然后复制到本文件里或者直接关闭。 做这个

利用vba实现多个excel工作簿快速合并方法是什么 第4张

然后,在弹出的框中选择“工作簿间工作表合并“,再点击其中的”执行“按钮。

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

利用vba实现多个excel工作簿快速合并方法是什么 第5张

然后,在弹出的窗口中选择要合并的工作簿,再点击”打开“即可。

Sub MultiModi()Dim wb As WorkbookDim ws As WorksheetDim fnfn = Dir("盘符:文件所在的完整路径名*.xls") '取得第一个工作簿的文件名(如果是2007版,则后缀名请改为 *.xlsx)Do While fn "" Set wb = Workbooks.Open(fn) '打开工作簿 For E

利用vba实现多个excel工作簿快速合并方法是什么 第6张

这样,多个工作簿就合并成一个了。

利用vba实现多个excel工作簿快速合并方法是什么 第7张

扩展阅读,以下内容您可能还感兴趣。

如何用EXCEL中的VBA合并同一资料夹中,多个工作簿的同一个工作表?

说千字,不如一附件

 

这里copy有有我以前做的合并文件夹下所有工作簿(包含子目录)到当前工作表的一个程序百

楼主可以参考学习下度.

 

也可以把问题作为内容(邮件主题一定要包含“Form”,本人以此为依据辨别知非垃圾邮件,以免误删)、excel文件(去掉机密内容)作为附件发来看道下 [email protected] 三零三三一三六 二七

求一个VBA,一个文件夹下多个Excel工作簿按条件范围合并成一个工作表内?

VBA就擅长这类的操作。当然,文件需要在指定的目录中。你的数袭据还算规范,做起来没问题。不知道你的表里百边的时间点是否一致。如果一致就更好处理了。

写这个VBA不免费,度因为需要耗费时间和精力的事。有意向的话可以私信。

另外,WPS免费版的不支持VBA,需要使用问Excel。

如果数据规则,要求明确,通常在用VBA只用点一下按钮,剩下的交给代码去答操作了。

思路,就是循环各个文件,写入对应的列和行。

如何将不同工作簿里的内容合并到同一个表格里面,VBA代码是什么

我就简单的给你写几句代码抄 剩下你自己补充 大概的思路就是 打开待合并的文件,取得workbook对象 然后操作这个打开的工作簿文件的某个表sheets(序号)  因为你行数未固定 你可以循环累加X 直到知空行再退出循环 X归零 将单元格内容赋值到新表格中 也是累加行数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、这样,在一个新属的工作表中,就汇总了需要的数据。追问感谢回答,因公司里的excel没有更新,暂时还没有这个功能。

所以只能用vba来实现。

现在就遇到了这个问题。

怎样利用vba把多个excle表合并一个工作簿下

请补充完善问题。

有很多不清楚的百地方,度如多个EXCEL表就是说多个文件吗?,每个文件里面有几个工作表,知是只合并第一个还是全部,合并后如道果工作表有同名版时时该怎样改名等等,细节问题要考权虑清楚,否则代码无法运行。

TAG标签:#vba #合并 #excel #