news 2026/8/22 12:37:56

vb copy target range

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
vb copy target range

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 8:43:42

COMSOL与MATLAB联手:水力压裂岩石损伤耦合模拟

comsol水力压裂岩石损伤耦合&#xff0c;裂缝制作dai码matlab。 comsol HM耦合模型 损伤模型 裂隙多孔介质注入流体引起天然裂隙&#xff0c;岩石产生新损伤的数值模拟&#xff0c;MATLAB裂缝函数及comsol模型在石油工程、地质工程等领域&#xff0c;水力压裂是一项非常重要的技…

作者头像 李华
网站建设 2026/8/22 8:58:18

cookie池的搭建与维护-2

[Cookie实战]一键部署大批量的Cookie调试环境 Cookie池项目介绍 web项目&#xff0c;统一管理账号密码&#xff0c;以及维护Cookie 【定时】全自动根据账号密码登录并提取Cookie 【被动】协助式绕过验证码实现登录并获取Cookie 主动提供接口API&#xff0c;实现Cookie的使用 …

作者头像 李华
网站建设 2026/8/22 8:31:05

自学嵌入式day31,waitpid,system 函数

waitpid 和 wait 函数waitpid(-1, status, 0) 等同于 wait(status)。 waitpid 函数原型为 pid_t waitpid(pid_t pid, int *status, int options)。参数说明&#xff1a;pid 取值决定回收的子进程范围&#xff1a;<-1&#xff1a;回收指定进程组内的任意子进程。-1&#xff1…

作者头像 李华
网站建设 2026/8/21 11:57:43

泛型继承实战指南(高级程序员必知的3个隐秘特性)

第一章&#xff1a;泛型的继承在面向对象编程中&#xff0c;继承是构建可复用、可扩展代码结构的核心机制。当泛型与继承结合使用时&#xff0c;能够实现更加灵活和类型安全的类层次结构。泛型类可以像普通类一样被继承&#xff0c;子类可以固定父类中的类型参数&#xff0c;也…

作者头像 李华
网站建设 2026/8/22 8:14:09

Symfony 8路由系统重构:从延迟2秒到毫秒级响应的优化之路

第一章&#xff1a;Symfony 8路由系统重构&#xff1a;从延迟2秒到毫秒级响应的优化之路在 Symfony 8 的新版本中&#xff0c;路由系统经历了一次深度重构&#xff0c;显著提升了请求解析性能。以往在复杂路由配置下可能出现接近 2 秒的响应延迟&#xff0c;如今已优化至毫秒级…

作者头像 李华