excel多工作簿合并vba:自动合并工作表的方法
excel多工作簿合并vba:自动合并工作表的方法---END---流程就是这样,重点来看一下代码:Private Sub 合并工作表() On Error Resume Next Application.ScreenUpdating = False Application.DisplayAlerts = False Dim xExcel As String xi As Integer xArr With Application.FileDialog(msoFileDialogFilePicker) If .Show = -1 Then .Filters.Clear .Filters.Add "Excel文件" "*.xls;*.xlsx;*.xlsm" .AllowMultiSelect = True ReDim xArr(1
Excel 工作表合并不是一个困难的问题,但是在应用的时候可能会不知所措,因为有大量的数据表要合并到一个表里,通常会选择一个一个表复制,似乎这样做就显得十分低效,而且真得没有必要这样工作。
本示例制作了一个任意选择工作表,并工作表合并到一个表里的方法,如下图所示:
可以通过一个按钮来选择想要合并的表,然后,输入一下合并后新的工作表名,接着就等程序自动完成合并,右侧列表框中会显示出合并后的工作表名称。
可以双击打开合并后的工作表,进行查看。这都不是重点。、
流程就是这样,重点来看一下代码:
Private Sub 合并工作表()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim xExcel As String xi As Integer xArr
With Application.FileDialog(msoFileDialogFilePicker)
If .Show = -1 Then
.Filters.Clear
.Filters.Add "Excel文件" "*.xls;*.xlsx;*.xlsm"
.AllowMultiSelect = True
ReDim xArr(1 To .SelectedItems.Count)
For xi = 1 To UBound(xArr)
xArr(xi) = .SelectedItems(xi)
Next xi
End If
End With
Dim xE As Variant
Dim w As Workbook wX As Workbook wCaption As String
wCaption = VBA.InputBox("输入文件名" "保存文件" VBA.Format(VBA.Date "yyyymmdd"))
If VBA.Len(VBA.Trim(wCaption)) = 0 Then Exit Sub
Set wX = Workbooks.Add
wX.SaveAs ThisWorkbook.Path & "\" & wCaption & ".xlsx"
Me.ListBox2.AddItem wX.FullName
For Each xE In xArr
Workbooks.Open xE
Set w = ActiveWorkbook
w.Worksheets(1).Copy wX.Worksheets(1)
wX.Save
w.Close
With Me.ListBox1
.AddItem xE
End With
Next xE
wX.Save
wX.Close
Erase xArr
Set w = Nothing
Set wX = Nothing
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
这样一个操作,可大大减少合并工作表操作的难度,显而易见是一个很有用的东西。
欢迎关注、收藏
---END---