合并excel全部的sheet的内容到单一sheet
2012-11-08 23:29
357 查看
Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(what:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function
Sub MergeSheets()
Dim sh As Worksheet
Dim DestSh As Worksheet
Dim Last As Long
Dim shLast As Long
Dim CopyRng As Range
Dim StartRow As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False
On Error Resume Next
ActiveWorkbook.Worksheets("»ã×Ü").Delete
On Error GoTo 0
Application.DisplayAlerts = True
Set DestSh = ActiveWorkbook.Worksheets.Add
DestSh.Name = "»ã×Ü"
StartRow = 3
For Each sh In ActiveWorkbook.Worksheets
If sh.Name = "Tools" Then
GoTo NXFOR
End If
If sh.Name <> DestSh.Name Then
Last = LastRow(DestSh)
shLast = LastRow(sh)
If shLast > 0 And shLast >= StartRow Then
Set CopyRng = sh.Range(sh.Rows(StartRow), sh.Rows(shLast))
If Last + CopyRng.Rows.Count > DestSh.Rows.Count Then
MsgBox "Too Row!"
GoTo ExitSub
End If
CopyRng.Copy
DestSh.Cells(Last + 1, "A") = sh.Name
With DestSh.Cells(Last + 2, "A")
.PasteSpecial xlPasteValues
.PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End With
End If
End If
NXFOR:
Next
ExitSub:
Application.Goto DestSh.Cells(1)
DestSh.Columns.AutoFit
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
On Error Resume Next
LastRow = sh.Cells.Find(what:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function
Sub MergeSheets()
Dim sh As Worksheet
Dim DestSh As Worksheet
Dim Last As Long
Dim shLast As Long
Dim CopyRng As Range
Dim StartRow As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False
On Error Resume Next
ActiveWorkbook.Worksheets("»ã×Ü").Delete
On Error GoTo 0
Application.DisplayAlerts = True
Set DestSh = ActiveWorkbook.Worksheets.Add
DestSh.Name = "»ã×Ü"
StartRow = 3
For Each sh In ActiveWorkbook.Worksheets
If sh.Name = "Tools" Then
GoTo NXFOR
End If
If sh.Name <> DestSh.Name Then
Last = LastRow(DestSh)
shLast = LastRow(sh)
If shLast > 0 And shLast >= StartRow Then
Set CopyRng = sh.Range(sh.Rows(StartRow), sh.Rows(shLast))
If Last + CopyRng.Rows.Count > DestSh.Rows.Count Then
MsgBox "Too Row!"
GoTo ExitSub
End If
CopyRng.Copy
DestSh.Cells(Last + 1, "A") = sh.Name
With DestSh.Cells(Last + 2, "A")
.PasteSpecial xlPasteValues
.PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End With
End If
End If
NXFOR:
Next
ExitSub:
Application.Goto DestSh.Cells(1)
DestSh.Columns.AutoFit
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
相关文章推荐
- Excel 多个sheet中的内容合并到一个sheet中
- 导入excel时合并单元格的处理(全部保存为合并的内容)
- 把多个EXCEL的内容合并到一个EXCEL中的多个SHEET中
- 合并两个excel的sheet到一个excel
- .net中将GridView中的部分内容或者全部内容导出到Excel中
- Excel 2007单元格及内容的合并、拆分_C#教程
- .net中将GridView中的部分内容或者全部内容导出到Excel
- 3、excel 导出。适合用于将界面上的内容所见及所得的输出,可以设置单元格的的合并,大小,字体,颜色等等
- EXCEL VBA代码,实现点击Sheet1按钮控件保存不连续单元格的数据到Sheet2中,然后清空输入内容
- 将多个Excel文件合并成一个有多个sheet的Excel文件
- Excel 表格中根据某一列的值从另一个xls文件的对应sheet中查找包含其中一列的内容(有点拗口)
- EXCEL计算公式之:excel跨文件、跨Sheet的合并计算公式
- Excel 2007单元格及内容的合并、拆分_C#教程
- 将多个csv文件合并到一个excel文件的不同的sheet中
- 【Excel技巧】合并多个Sheet为一个的方法
- 使用VBA实现Excel合并相同内容的相邻单元格
- Excel技巧-动态引用其他Sheet中的内容
- Excel 合并多项内容到首格
- 如何将DW中不同内容保存到EXCEL不同的SHEET当中?(原创)
- excel合并多个sheet,sheet名称模糊匹配,并从第二行开始