江科附中2025高复招生:分层锻造,特级名师领航一本线突围
727
2025-04-02
EXCEL VBA 跨表合并多个文件
‘选择一个目录,将目录中的所有EXCEL文件导入当前工作表
‘这些EXCEL文件最好格式能一样,这里是每个文件是同一个格式
Sub 批量()Dim FD, str$, arrSet FD = Application.FileDialog(msoFileDialogFolderPicker)If FD.Show = -1 Then t = FD.SelectedItems(1) Else Exit Sub ‘如果没选择文件夹则退出Application.ScreenUpdating = FalseCells.NumberFormatLocal = "@"str = Dir(t & "\*.xl*") ‘查找格式为EXCEL的文件While Len(str) > 0 ‘文件名不为空时Workbooks.Open (t & IIf(Right(t, 1) = "", "", "") & str) ‘打开工作簿
With ActiveWorkbook.ActiveSheet.Range(.Cells(2, "l"), .Cells(.[a65536].End(3).Row, "l")) = "’" & Left(str, Len(str) – IIf(Right(str, 1) = "x", 5, 4))arr = .UsedRangeWorkbooks(str).Close False ‘关闭工作薄
Kill (t & IIf(Right(t, 1) = "", "", "") & str) ’删除工作薄(如果不删除,省去这一步)
End With
With ActiveSheetrw = .[a65536].End(3).Row + 1.Cells(rw, 1).Resize(UBound(arr, 1), UBound(arr, 2)) = arr ‘将数据写入当前工作表End Withstr = Dir() ‘查找下一个文件WendIf [a1] = "" Then Rows(1).Delete ‘如果A1为空,删除第一行Application.ScreenUpdating = TrueEnd Sub
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。