您的位置:首页 > 编程语言 > VB

vba的宏和模块,关于excel表的合并

2015-11-10 16:15 387 查看
Sub 工作薄间工作表合并()

Dim FileOpen

Dim X As Integer

Application.ScreenUpdating = False

FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xls),*.xls", MultiSelect:=True, Title:="合并工作薄")

X = 1

While X <= UBound(FileOpen)

Workbooks.Open Filename:=FileOpen(X)

Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

X = X + 1

Wend

ExitHandler:

Application.ScreenUpdating = True

Exit Sub

errhadler:

MsgBox Err.Description

End Sub

这是多个文件合成到一个文件,不同的sheet,打开文件夹后要使用shift或者ctrl键选择所有需要的文件,一起哗,拉进来。

Sub hbgzb()

Dim sh As Worksheet, flag As Boolean, i As Integer, hrow As Integer, hrowc As Integer

flag = False

For i = 1 To Sheets.Count

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

Next

If flag = False Then

Set sh = Worksheets.Add

sh.Name = "合并数据"

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

End If

For i = 1 To Sheets.Count

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

hrow = Sheets("合并数据").UsedRange.Row

hrowc = Sheets("合并数据").UsedRange.Rows.Count

If hrowc = 1 Then

Sheets(i).UsedRange.Copy Sheets("合并数据").Cells(hrow, 1).End(xlUp)

Else

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

End If

End If

Next i

End Sub

前提是sheet里面的目录项一致。还要选择这些目录项,和深度。

试过的哦,还可以的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: