【合并多个 Sheet】
合并之前,请先创建一个空白的 Sheet 作为合并目标 Sheet ,这个 Sheet 必须是第一个 Sheet 哦。
如果不合并标题行(比如第一行)则 j=1 改为 j=2
如果数据不是从第一行,或者第一列开始的,请修改 j=1 及 k=2 两行的参数。
比如 j=2 k=3 表示从 第2行,第三列开始的数据。
Sub CombineSheet()
Dim i, j, k, n As Integer
n = 1
For i = 2 To ThisWorkbook.Sheets.Count
For j = 1 To ThisWorkbook.Sheets(i).UsedRange.Rows.Count
For k = 1 To ThisWorkbook.Sheets(i).UsedRange.Columns.Count
ThisWorkbook.Sheets(1).Cells(n, k).Value = ThisWorkbook.Sheets(i).Cells(j, k).Value
Next k
n = n + 1
Next j
Next i
End Sub
意外惊喜:合并 Sheet 的功能会自动去掉 超链接(HREF) 标记。
实际上,为了去掉 Excel 的所有超链接,也可以使用这个函数啊。
【合并多个Excel文件】
Sub CombineWorkbooks()
Dim FilesToOpen, ft
Dim x As Integer
Application.ScreenUpdating = False
On Error GoTo errhandler
FilesToOpen = Application.GetOpenFilename _
(FileFilter:=“Micrsofe Excel文件(*.xls), *.xls“, _
MultiSelect:=True, Title:=“要合并的文件“)
If TypeName(FilesToOpen) = “boolean“ Then
MsgBox “没有选定文件“
End If
x = 1
While x <= UBound(FilesToOpen)
Set wk = Workbooks.Open(Filename:=FilesToOpen(x))
wk.Sheets().Move after:=ThisWorkbook.Sheets _
(ThisWorkbook.Sheets.Count)
x = x + 1
Wend
MsgBox “合并成功完成!“
errhandler:
End Sub
【说明】
其实合并多个Excel文件的功能可以通过合并多个sheet的功能实现,可以先把多个Excel文件的所有sheet都复制到一个新的Excel文件中,然后再使用合并多个sheet的功能实现合并。
文章来源: http://www.315soft.com/topics/1008.aspx