Sub BatchMergeExcelFiles()
Dim sourceFolder As String
Dim newWorkbook As Workbook
Dim sourceWorkbook As Workbook
Dim fileDialog As fileDialog
Dim targetRow1 As Long ' new.xlsx Sheet1的目标粘贴行
Dim targetRow2 As Long ' new.xlsx Sheet2的目标粘贴行
' 1. 选择目标文件夹(手动选择,避免硬编码路径)
Set fileDialog = Application.fileDialog(msoFileDialogFolderPicker)
With fileDialog
.Title = "请选择要遍历的文件夹"
If .Show <> -1 Then Exit Sub
sourceFolder = .SelectedItems(1) & "\"
End If
' 2. 创建新工作簿 new.xlsx
Set newWorkbook = Workbooks.Add
newWorkbook.SaveAs Filename:=sourceFolder & "new.xlsx", FileFormat:=xlOpenXMLWorkbook
' 初始化目标粘贴行(从第1行开始)
targetRow1 = 1
targetRow2 = 1
' 3. 遍历文件夹内所有xlsx文件
Dim fileName As String
fileName = Dir(sourceFolder & "*.xlsx")
Application.ScreenUpdating = False ' 关闭屏幕更新,提升效率
Application.DisplayAlerts = False ' 关闭弹窗提示
Do While fileName <> ""
' 跳过新建的new.xlsx,避免自循环
If fileName <> "new.xlsx" Then
' 打开源文件
Set sourceWorkbook = Workbooks.Open(sourceFolder & fileName)
' ========== 复制 Sheet1!B7:G8 到 new.xlsx Sheet1 ==========
With sourceWorkbook.Worksheets("Sheet1")
.Range("B7:G8").Copy
newWorkbook.Worksheets(1).Range("A" & targetRow1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
End With
targetRow1 = targetRow1 + 2 ' 每次复制2行,目标行递增2
' ========== 复制 Sheet1!B51:G58 到 new.xlsx Sheet2 ==========
With sourceWorkbook.Worksheets("Sheet1")
.Range("B51:G58").Copy
newWorkbook.Worksheets(2).Range("A" & targetRow2).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
End With
targetRow2 = targetRow2 + 8 ' 每次复制8行,目标行递增8
' 关闭源文件,不保存修改
sourceWorkbook.Close SaveChanges:=False
End If
' 读取下一个文件
fileName = Dir
Loop
' 收尾操作
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.DisplayAlerts = True
newWorkbook.Save ' 保存new.xlsx
newWorkbook.Close
MsgBox "批量合并完成!" & vbCrLf & "新文件路径:" & sourceFolder & "new.xlsx", vbInformation
' 释放对象
Set sourceWorkbook = Nothing
Set newWorkbook = Nothing
Set fileDialog = Nothing
End Sub
vb copy target range
张小明
前端开发工程师
COMSOL与MATLAB联手:水力压裂岩石损伤耦合模拟
comsol水力压裂岩石损伤耦合,裂缝制作dai码matlab。 comsol HM耦合模型 损伤模型 裂隙多孔介质注入流体引起天然裂隙,岩石产生新损伤的数值模拟,MATLAB裂缝函数及comsol模型在石油工程、地质工程等领域,水力压裂是一项非常重要的技…
cookie池的搭建与维护-2
[Cookie实战]一键部署大批量的Cookie调试环境 Cookie池项目介绍 web项目,统一管理账号密码,以及维护Cookie 【定时】全自动根据账号密码登录并提取Cookie 【被动】协助式绕过验证码实现登录并获取Cookie 主动提供接口API,实现Cookie的使用 …
自学嵌入式day31,waitpid,system 函数
waitpid 和 wait 函数waitpid(-1, status, 0) 等同于 wait(status)。 waitpid 函数原型为 pid_t waitpid(pid_t pid, int *status, int options)。参数说明:pid 取值决定回收的子进程范围:<-1:回收指定进程组内的任意子进程。-1࿱…
泛型继承实战指南(高级程序员必知的3个隐秘特性)
第一章:泛型的继承在面向对象编程中,继承是构建可复用、可扩展代码结构的核心机制。当泛型与继承结合使用时,能够实现更加灵活和类型安全的类层次结构。泛型类可以像普通类一样被继承,子类可以固定父类中的类型参数,也…
Symfony 8路由系统重构:从延迟2秒到毫秒级响应的优化之路
第一章:Symfony 8路由系统重构:从延迟2秒到毫秒级响应的优化之路在 Symfony 8 的新版本中,路由系统经历了一次深度重构,显著提升了请求解析性能。以往在复杂路由配置下可能出现接近 2 秒的响应延迟,如今已优化至毫秒级…