问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用VBA合并同文件夹中的格式相同的工作表。

发布网友 发布时间:2022-04-23 16:15

我来回答

4个回答

热心网友 时间:2023-09-15 01:32

我经常用这个修改合并
Sub G22表10日()
Dim SQL0$, strTbl$, i%, thisbookname$, thisheetname$, sName$, cn, sh, rowend&, rng$
Dim Filename As Variant
Dim RefEdit1, RefEdit2, RefEdit3, RefEdit4 As String

Filename = Application.GetOpenFilename("Microsoft Office Excel Files (*.xls), *.xls", , "请选取文件", , True)
If Not IsArray(Filename) Then Exit Sub
thisbookname = ActiveWorkbook.Name
thisheetname = ActiveSheet.Name

'多文件求和汇总
Application.DisplayAlerts = False
Application.ScreenUpdating = False
RefEdit1 = "$c$9:$c$11" '需合并的数据区域
RefEdit2 = "$c$14:$c$14"
RefEdit3 = "$c$18:$c$19"
RefEdit4 = "$c$21:$c$23"
For i = 1 To UBound(Filename)
sName = Dir(Filename(i))
Workbooks.Open Filename(i), UpdateLinks:=0
Workbooks(sName).Worksheets(thisheetname).Activate
rng = Range(RefEdit1).Address
Range(rng).Copy
Workbooks(thisbookname).Activate
Range(rng).PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd
Workbooks(sName).Worksheets(thisheetname).Activate
rng = Range(RefEdit2).Address
Workbooks(sName).Worksheets(thisheetname).Activate
Range(rng).Copy
Workbooks(thisbookname).Activate
Range(rng).PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd
Workbooks(sName).Worksheets(thisheetname).Activate
rng = Range(RefEdit3).Address
Range(rng).Copy
Workbooks(thisbookname).Activate
Range(rng).PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd
Workbooks(sName).Worksheets(thisheetname).Activate
rng = Range(RefEdit4).Address
Range(rng).Copy
Workbooks(thisbookname).Activate
Range(rng).PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd
Workbooks(sName).Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub追问谢谢,你好像没有看清我的要求。
你的这段代码,我试了下结果是空白,最后选中C21:C23这位个单元格,我将区域改了后出现的也只是这片区域被选中,而不是将原表数据搬过来

追答Sub CombineWorkbooks()
Dim FilesToOpen, wb
Dim x As Integer, str$
On Error GoTo errhandler
Application.ScreenUpdating = False
FilesToOpen = Application.GetOpenFilename(Filefilter:="MicroSoft Excel文件(*.xls),*.xls", MultiSelect:=True, Title:="要合并的文件")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "没有选中文件"
GoTo exithandler
End If
x = 1
While x <= UBound(FilesToOpen)
D最后行 = [B65536].End(xlUp).Row + 1
Set wb = Workbooks.Open(FilesToOpen(x))
最后行 = wb.Sheets("表一").[B65536].End(xlUp).Row
wb.Sheets("表一").Rows("3:" & 最后行).Copy Destination:=ThisWorkbook.Sheets("表一").Rows(D最后行)
'Wb.Sheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
str = wb.Name
str = Left(str, Len(str) - 4)
x = x + 1
wb.Close False ' 不保存就关闭这个打开的工作簿
' Range(Cells(D最后行, 1), Cells(D最后行 + 最后行 - 2, 1)) = str '文件名
Wend
exithandler:
Application.ScreenUpdating = True
Exit Sub
errhandler:
MsgBox Err.Description
Resume exithandler
End Sub

热心网友 时间:2023-09-15 01:32

看别人的代码是最难的,所以我提供一下另一种思路。
1.归类:先用代码查找格式相同的文件,将这些文件放到别的文件夹下。
2.合并:按顺序打开每一个文件,复制指定区域,粘贴到新的文件里。
如果你觉得我的思路可以,而自己搞不定代码的话,可以Q我:369866705

热心网友 时间:2023-09-15 01:33

Sub 删除不连续的空白行()
Dim i, m, n, a, b, c,
m = 0
n = 5000
b = 0
For i = 5000 To 1 Step -1
2 If Sheet1.Cells(i, 1) = "" Then
n = i
m = m + 1
ElseIf Sheet1.Cells(i, 1) <> "" Then
If m = 0 Then
GoTo 3
Else
Range(Cells(n, 1), Cells(n + m - 1, 256)).Delete
m = 0
End If
3 For c = n - 1 To 1 Step -1
If Sheet1.Cells(c, 1) <> "" Then
a = c
b = b + 1
Else
i = c
GoTo 2
End If
Next c
i = c
End If
Next i
End Sub
这个是粗略的,没有简化

热心网友 时间:2023-09-15 01:33

采用单行复制
j = 1
For i = 1 To Max
If Cells(i, 1).Value <> "" Then
Sheets("Sheet1").Rows([i]).Copy Sheets("Sheet1").Rows([j])
j = j + 1
End If
Next i
或选择性批量复制
Dim i%, r%
Dim rag As Range
i = 1
For Each rag In Sheets("Sheet2").Range("A1:A100") ''判断A列是否空值
If rag.Value <> "" Then
r = rag.Row
Sheets("Sheet2").Rows([r]).Copy Sheets("Sheet1").Rows([i])
i = i + 1
End If
Next

参考资料:http://zhidao.baidu.com/question/84622759.html?fr=qrl&cid=864&index=3&fr2=query

用vba实现同一个文件夹内的多个excel文件,对同sheet名的工作簿合并成...

' 打开主工作簿 Set 主工作簿 = ThisWorkbook ' 设置目标工作表,这里假设要合并到主工作簿的Sheet1工作表中 Set 目标工作表 = 主工作簿.Sheets("Sheet1")' 获取文件夹中的文件名 文件名 = Dir(文件夹路径 &amp; "*.xlsx")' 循环处理每个文件 Do While 文件名 &lt;&gt; ""' 打开源工作簿 Set 源...

如何用简便方法将同一个文件夹里多个格式相同的WPS表格快速复制到同一...

1.原始数据所在工作簿包含多个格式相同的工作表,只不过每个工作表内容不同,比如说不同人名的工作表数据或者不同部门填写的数据。2.在原始数据同目录下新建一个工作簿,建立两个工作表,名称分别为“首页”和“合并汇总表”。3.按Alt+F11进入VBA代码编辑和调试界面。4.根据下图提示,插入一个模块。5....

如何将多个格式一样的excel文件合并为一个

要将多个格式相同的Excel文件合并为一个,可以使用Excel的VBA宏、Python的pandas库或第三方Excel插件等工具来自动化处理。首先,如果熟悉VBA编程,可以通过编写一个宏来自动合并多个Excel文件。这个宏可以遍历指定文件夹中的所有Excel文件,然后逐个打开它们,将每个文件中的数据复制到一个新的总表格中。例如,...

怎样用VBA将同一个工作簿中的指定工作表合并?

本例中,用VBA将同一个工作簿中的指定工作表合并,方法如下:第一步,在VBA编辑器中,插入新模块。第二步,在模块中复制以下代码。Sub MergeALLSheetsInOne()Dim tsh As Worksheet Dim ssh As Worksheet Dim lrng As Long Dim lcc As Long Dim tshlrng As Long Set tsh = Sheets("A")For E...

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

1)Else Workbooks(myfile).Sheet1.Activate Workbooks(myfile).Sheet1.UsedRange.Offset(9, 0).Copy Destination:=thisworkbook.Sheets("汇总").Cells(thisworkbook.Sheets("汇总").Range("A65536").End(xlUp).Row + 1, 1) End If ActiveWorkbook.Close myfile = Dir Loop While...

如何用VBA将多个excel表格合并成一个呢?

1、首先我们打开需要汇总的excel表格,在表格的下面,重命名一个表格,我们暂且命名为“汇总”。然后我们点击打开数据中的“合并计算”选项。然后我们在弹出来的窗口中的点击引用位置后面的图标。2、如果是相同格式的Excel表格,可以利用VBA快速将几个工作表中的数据全部汇总到一个工作表中。3、,新建一个...

同一个目录下的多个excel文件,不同文件名,相同格式,要求将所有数据合并...

1.将所有格式相同的Excel表格保存到一个文件夹内;2.在文件夹内新建一个Excel工作表,命名为“汇总表”;3.打开汇总表,按“Alt + F11”打开VBA开发环境,双击工程资源管理器里面的sheet1(sheet1),在右侧的代码区编写如下代码:Sub 合并当前目录下所有工作簿的全部工作表()Dim MyPath, MyName, ...

求一个VBA,一个文件夹中多个EXCEL工作簿合并成一个工作表?

1、将需要合并的EXCEL文件与目的EXCEL文件放在一个文件夹下。2、 打开HB.xlsx,将“开发工具”菜单加载到EXCEL菜单下。3、首先右键点击菜单空白处,选择“自定义功能区”,在弹出的对话框里选择主选项卡。然后勾选“开发工具”。如图所示。4、 制作导入键。点击“开发工具”菜单,选择“插入”--“...

如何将两个格式相同的工作簿中多个工作表数据合并?

合并表,复制A人的或B人的表,如果所有表一样,留一表,其它删除。在一表填写公式对应单位元格引用A和B,如果其它表一样不用改公式,将表复制一份,将复制表变数值。再把有公式表"=IF"替换成"8888=IF",然后A人表中Sheet1,改成Sheet11,B人表中Sheet1,改成Sheet11,然后把A人表中Sheet2,改...

如何对同一文件夹下多个相同EXCEL表格中相同单元格内容进行批量修改...

如何对同一文件夹下多个相同EXCEL表格中相同单元格内容进行批量修改 这个建议使用vba来遍历文件,并进行修改的 可以使用dir或者fso文件系统进行文件遍历处理的 如何对同一个文件夹下几十个相同excel表格相同的单元格进行批量替换 有两个方案:1.用函数(如果文件数量不是很多的话):选定一个为主表(...

文件夹里相同的文件怎么删除 删除文件夹中相同文件 vba打开文件夹下的所有文件 vba打开指定文件夹下的文件 怎么全选文件夹的文件 利用ExcelVBA文件夹 利用ExcelVBA打开文件夹 vba读取文件夹下所有文件 vba查找文件夹文件
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑为什么从网卡启动? 哈尔滨的公办专科学校 给亲朋好友送鲍芹送几盒合适 请问四川凉山不是中专就可以报考村官吗 为什么我报了说我学历条件不符合... 曾沛慈真实身高 新组装电脑安装U盘启动win10系统后无限蓝屏,每次蓝屏代码不一样... 从保山出发3个小时的车程能到哪呢? 求帮忙啊 已知a的x次方=3,b的y次方=2,求( 魔兽世界职业选择我想在猎人,萨满,武僧,选一个一直玩, 魔兽世界5.4职业选择,混合职业哎,小德,牧师,武僧,奶德可以,但是输出... excel vba如何引用当前选择的区域 VBA 批量删除指定分页行 vba 同一个excel工作表,sheet之间同列头内容的复制 怎样用VBA写出返回动态数组的函数 VBA按类别自动编号? vba 如何将符合条件的单元格表上颜色? VBA 如何快速在多个位置的指定条件插入分页符? VBA中类型不匹配的问题 Excel高手用VBA选择任意行数统计 用VBA将这个改写成自定义函数 而且不能用goto语句 VBA里面nr.Text是什么意思,我没学过,望高手介绍点有关的书籍 请问如何用华为手机控制小米手机呢? 怎么把华为手机导入小米手机 华为手机如何绑定小米手环2? 手机号在华为手机上绑定怎么绑定到小米手机上 想要一份团员个人小结? ...中国共产主义青年团团员民主评议表 中的 个人自我鉴定???急... 团员民主评议表的个人年度总结怎么写 团员教育评议登记表个人总结怎么写? 团员评议小结怎么写 vba:这段代码意思是想将含有“合计数量”字符的这一行复制到另一个工作表中 求Excel表格中VBA代码 请vba高手指点,excel数据批量右对齐!!! Excel如何用VBA代码自动删除多余记录,只保留每个学员的最好成绩? vba如何一键把一个文件多个sheet的最后一行数值复制到一个新的sheet页? EXCELL VBA 编程把表格里多列数据按照从左到右的顺序堆叠到一列去? 诽谤诬陷罪最多判多少年 如何在vba中把数字列转成字母 诽谤罪一般能判多少年 诽谤罪怎么判? 诽谤罪判刑多久 在京东怎么屏蔽不喜欢的品牌商家? 抖音怎么屏蔽商家客服 美团众包怎么屏蔽商家 如何在美团外卖上屏蔽商家店铺? 怎么屏蔽商家接外卖 饿了么不喜欢的商家如何找到 怎么阻止商家短信? 手机可以屏蔽淘宝卖家吗? 怎样在淘宝上屏蔽广州商家?