当前位置: 首页 > news >正文

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

http://www.cnnetsun.cn/news/68010.html

相关文章:

  • 如何通过AI销冠系统,实现数字员工效率的质变?
  • 兼容性双突破,低门槛部署实测!IPTV 电视源码系统 2025
  • plsql提示款报错乱码
  • 为什么Laravel 13的多模态存储设计让90%的开发者拍案叫绝?
  • 【计算机毕设选题】基于Spark的公务员招录职位信息可视化分析系统源码,Python大数据项目 毕业设计 选题推荐 毕设选题 数据分析 机器学习
  • 如何利用微信个人号API接口进行二次开发?
  • Symfony 8服务注册中心性能优化指南(提升响应速度300%)
  • 3、CentOS 7 入门:Bash shell 与文件系统导航
  • 2025年低成本提升AI能力:CAIE认证的高性价比之选
  • 2025应届生AI证书避坑指南:CAIE认证成优选
  • 如何利用PHP 8.6的JIT指令优化实现毫秒级响应?
  • 【Symfony 8路由安全进阶指南】:掌握参数验证的5大核心技巧
  • 从传感器到图表:PHP实现农业数据实时可视化的5个关键步骤
  • 业务导向型技术日志首日记录(业务中使用的技术栈)
  • 基于SpringBoot + Vue的宠物殡葬网站设计
  • 基于Uniapp + SpringBoot + Vue的中医个性化养生系统的设计与实现
  • 亲测有效:打印机驱动程序无法使用的完整解决思路
  • ollama pull qwen:32b命令执行失败原因排查
  • 基于Uniapp + SpringBoot + Vue的高校就业招聘系统的设计与实现
  • Qwen3-32B适合哪些行业?金融、医疗、法律应用场景解析
  • 创业团队用 XinServer 提升项目交付效率实战
  • 交换机上各种接口
  • Google Vids:由AI驱动的工作视频创作 | ProductHunt 今日热榜 - 12月15日
  • 情感智能对话系统AI Agent:LLM驱动的深度交互
  • HDFS在大数据分析中的数据访问与处理优化
  • 自动驾驶—CARLA仿真(8)tutorial demo
  • 从被动响应到主动赋能:家具行业客服机器人的革新路径
  • AI辅助可再生能源发电预测:从气象数据到电力市场
  • 细节定成败!鹧鸪云让储能配置精准落地
  • 基于Qwen3-8B构建智能对话系统:从ollama下载到部署