多个excel文件如何快速合并到一个excel中
2017-03-03 13:10
751 查看
http://jingyan.baidu.com/article/f0062228d16ba9fbd3f0c82b.html
Sub 汇总多工作簿()
Dim r As Long, c As Long, str As String, sht As Worksheet
'定义r,c为长整型
r = 2
'赋值r初值为2
Application.ScreenUpdating = False '屏幕闪烁关闭
Dim filename As String, wb As Workbook, Erow As Long
'定义filename 为文本型,wb 为 工作簿,sht为工作表,Erow 为长整型
Dim fn As String, Arr As Variant
'on error resume next
On Error GoTo VeryEnd
'程序中出现语句等运行错误时,程序跳跃到后面 VeryEnd行
filename = Dir(ThisWorkbook.Path & "\*.xlsx") '对文件夹内的工作簿进行循环,循环查找的格式 *.xls
' MsgBox filename
Do While filename <> ""
'对文件夹内的工作簿进行循环,截止到最后一个工作簿
If filename <> ThisWorkbook.Name Then
'判断文件是否是本工作簿
'else
' Erow = Range("A1").End(xlDown).Row '取得汇总表中第一条空行行号
' MsgBox "erow=" & Erow
fn = ThisWorkbook.Path & "" & filename '取得循环符合条件工作簿的 文件夹地址,赋值给fn 这个变量
' MsgBox "现在汇总的工作簿是fn= " & fn
Set wb = GetObject(fn)
'将fn代表的工作簿对象赋给变量
Set sht = wb.Worksheets(1)
'range,cells
'汇总的是第1张工作表
Arr = sht.Range("a2:m" & sht.Range("a2").End(xlDown).Row) '将结果存放在定义好的数组arr中
c = UBound(Arr, 1)
' MsgBox "现在汇总的工作簿行数= " & c
'将数组arr中的数据写入工作表
Range("a" & r).Resize(UBound(Arr, 1), UBound(Arr, 2)) = Arr '将目标结果存放在目标工作表中特定的区域
r = r + c
' MsgBox "现在汇总到的行数是:" & r
wb.Close False
End If
filename = Dir '进行下一步的循环
Loop
VeryEnd:
Application.ScreenUpdating = True
'屏幕闪烁打开
End Sub
########################################################################################################################
Dim r As Long, c As Long, str As String, sht As Worksheet, brr(1 To Rows, 1 To 1)
########################################################################################################################
'汇总各工作簿数据到汇总表中
Sub 汇总多工作簿()
Dim r As Long, c As Long, str As String, sht As Worksheet, brr(1 To 10000, 1 To 1)
'定义r,c为长整型
r = 2
'赋值r初值为2
Application.ScreenUpdating = False '屏幕闪烁关闭
Dim filename As String, wb As Workbook, Erow As Long
'定义filename 为文本型,wb 为 工作簿,sht为工作表,Erow 为长整型
Dim fn As String, Arr As Variant
'on error resume next
On Error GoTo VeryEnd
'程序中出现语句等运行错误时,程序跳跃到后面 VeryEnd行
filename = Dir(ThisWorkbook.Path & "\*.xlsx") '对文件夹内的工作簿进行循环,循环查找的格式 *.xls
' MsgBox filename
Do While filename <> ""
'对文件夹内的工作簿进行循环,截止到最后一个工作簿
If filename <> ThisWorkbook.Name Then
'判断文件是否是本工作簿
'else
' Erow = Range("A1").End(xlDown).Row '取得汇总表中第一条空行行号
' MsgBox "erow=" & Erow
fn = ThisWorkbook.Path & "" & filename '取得循环符合条件工作簿的 文件夹地址,赋值给fn 这个变量
' MsgBox "现在汇总的工作簿是fn= " & fn
Set wb = GetObject(fn)
'将fn代表的工作簿对象赋给变量
Set sht = wb.Worksheets(1)
'range,cells
'汇总的是第1张工作表
Arr = sht.Range("a2:m" & sht.Range("a2").End(xlDown).Row) '将结果存放在定义好的数组arr中
c = UBound(Arr, 1)
For i = 1 To c
brr(i, 1) = filename
Next
' MsgBox "现在汇总的工作簿行数= " & c
'将数组arr中的数据写入工作表
Range("b" & r).Resize(UBound(Arr, 1), UBound(Arr, 2)) = Arr '将目标结果存放在目标工作表中特定的区域
Range("a" & r).Resize(UBound(Arr, 1), 1) = brr
Erase brr
r = r + c
' MsgBox "现在汇总到的行数是:" & r
wb.Close False
End If
filename = Dir '进行下一步的循环
Loop
VeryEnd:
Application.ScreenUpdating = True
'屏幕闪烁打开
End Sub
多个excel文件如何快速合并到一个excel中
'汇总各工作簿数据到汇总表中Sub 汇总多工作簿()
Dim r As Long, c As Long, str As String, sht As Worksheet
'定义r,c为长整型
r = 2
'赋值r初值为2
Application.ScreenUpdating = False '屏幕闪烁关闭
Dim filename As String, wb As Workbook, Erow As Long
'定义filename 为文本型,wb 为 工作簿,sht为工作表,Erow 为长整型
Dim fn As String, Arr As Variant
'on error resume next
On Error GoTo VeryEnd
'程序中出现语句等运行错误时,程序跳跃到后面 VeryEnd行
filename = Dir(ThisWorkbook.Path & "\*.xlsx") '对文件夹内的工作簿进行循环,循环查找的格式 *.xls
' MsgBox filename
Do While filename <> ""
'对文件夹内的工作簿进行循环,截止到最后一个工作簿
If filename <> ThisWorkbook.Name Then
'判断文件是否是本工作簿
'else
' Erow = Range("A1").End(xlDown).Row '取得汇总表中第一条空行行号
' MsgBox "erow=" & Erow
fn = ThisWorkbook.Path & "" & filename '取得循环符合条件工作簿的 文件夹地址,赋值给fn 这个变量
' MsgBox "现在汇总的工作簿是fn= " & fn
Set wb = GetObject(fn)
'将fn代表的工作簿对象赋给变量
Set sht = wb.Worksheets(1)
'range,cells
'汇总的是第1张工作表
Arr = sht.Range("a2:m" & sht.Range("a2").End(xlDown).Row) '将结果存放在定义好的数组arr中
c = UBound(Arr, 1)
' MsgBox "现在汇总的工作簿行数= " & c
'将数组arr中的数据写入工作表
Range("a" & r).Resize(UBound(Arr, 1), UBound(Arr, 2)) = Arr '将目标结果存放在目标工作表中特定的区域
r = r + c
' MsgBox "现在汇总到的行数是:" & r
wb.Close False
End If
filename = Dir '进行下一步的循环
Loop
VeryEnd:
Application.ScreenUpdating = True
'屏幕闪烁打开
End Sub
########################################################################################################################
Dim r As Long, c As Long, str As String, sht As Worksheet, brr(1 To Rows, 1 To 1)
########################################################################################################################
'汇总各工作簿数据到汇总表中
Sub 汇总多工作簿()
Dim r As Long, c As Long, str As String, sht As Worksheet, brr(1 To 10000, 1 To 1)
'定义r,c为长整型
r = 2
'赋值r初值为2
Application.ScreenUpdating = False '屏幕闪烁关闭
Dim filename As String, wb As Workbook, Erow As Long
'定义filename 为文本型,wb 为 工作簿,sht为工作表,Erow 为长整型
Dim fn As String, Arr As Variant
'on error resume next
On Error GoTo VeryEnd
'程序中出现语句等运行错误时,程序跳跃到后面 VeryEnd行
filename = Dir(ThisWorkbook.Path & "\*.xlsx") '对文件夹内的工作簿进行循环,循环查找的格式 *.xls
' MsgBox filename
Do While filename <> ""
'对文件夹内的工作簿进行循环,截止到最后一个工作簿
If filename <> ThisWorkbook.Name Then
'判断文件是否是本工作簿
'else
' Erow = Range("A1").End(xlDown).Row '取得汇总表中第一条空行行号
' MsgBox "erow=" & Erow
fn = ThisWorkbook.Path & "" & filename '取得循环符合条件工作簿的 文件夹地址,赋值给fn 这个变量
' MsgBox "现在汇总的工作簿是fn= " & fn
Set wb = GetObject(fn)
'将fn代表的工作簿对象赋给变量
Set sht = wb.Worksheets(1)
'range,cells
'汇总的是第1张工作表
Arr = sht.Range("a2:m" & sht.Range("a2").End(xlDown).Row) '将结果存放在定义好的数组arr中
c = UBound(Arr, 1)
For i = 1 To c
brr(i, 1) = filename
Next
' MsgBox "现在汇总的工作簿行数= " & c
'将数组arr中的数据写入工作表
Range("b" & r).Resize(UBound(Arr, 1), UBound(Arr, 2)) = Arr '将目标结果存放在目标工作表中特定的区域
Range("a" & r).Resize(UBound(Arr, 1), 1) = brr
Erase brr
r = r + c
' MsgBox "现在汇总到的行数是:" & r
wb.Close False
End If
filename = Dir '进行下一步的循环
Loop
VeryEnd:
Application.ScreenUpdating = True
'屏幕闪烁打开
End Sub
相关文章推荐
- 如何快速把多个excel表合并成一个excel表
- 如何快速把多个excel表合并成一个excel表
- 如何把一个基于Maven项目所有的jar文件快速列出到Excel?
- 如何将多个excel文件合并成一个
- excel如何快速把多个工作表合并到一个excel表
- 关于Excel操作编写的一个软件设计构思案例[连载] --如何打开Excel文件,获取需要列的数据显示到表格内做修改
- 如何将多个PPT文件合并到一个PPT中
- 如何将excel中的一个表格内容转成xml格式的文件
- 如何把一个现成的exe文件合并到合并到我的程序里?运行时再释放出来?
- Winform合并多个Excel文件到一个文件中(源文件.xls,实际是.xml)
- 把多个excel文件的sheet1数据合并到一个excel文件的sheet1中
- winform中 如何读取Excel文件,之后再把它写入一个新的Excel文件
- 生成了一个txt文件,如何用记事本和EXCEL 打开它给用户看?
- 多个Excel文件合并到一个工作薄中
- excel(word)文件中的表格如何快速转化为html代码
- 怎么把100多个EXCEL文件合并成一个
- (原创)如何将Nios II硬件和软件合成一个文件(NIOS II)(硬件)(软件)(合并)
- 如何有效合并两个文件:一个是1亿条的用户基本信息,另一个是用户每天看电影连续剧等的记录,5000万条。其中内存只有1G。
- 如何有效合并两个文件:一个是1亿条的用户基本信息,另一个是用户每天看电影连续剧等的记录,5000万条。其中内存只有1G。
- 本人写的如何使用DFS API 合并为一个大的天气数据文件