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

怎么用Excel VBA写一个excel批量合并的程序?

您可以按照以下VBA代码来实现把同一路径上的所有工作簿合并到同一个工作簿中:

b473bc5ba470595d8597e90109483547.jpeg

```VBA

Option Explicit

Sub MergeWorkbooks()

Dim path As String, fileName As String, sheet As Worksheet

Dim targetWorkbook As Workbook, sourceWorkbook As Workbook

Dim worksheetsCount As Integer, i As Integer, j As Integer

'设置合并后的目标工作簿,即第一个打开的工作簿

Set targetWorkbook = Application.Workbooks.Open(Application.GetOpenFilename("Excel Workbooks (*.xls;*.xlsx;*.xlsm;*.xlsb),*.xls;*.xlsx;*.xlsm;*.xlsb"))

'获取路径

path = targetWorkbook.path

'遍历所有工作簿,连接到目标工作簿并复制工作表

fileName = Dir(path & "\*.xls*")

While fileName <> ""

'跳过目标工作簿本身

If fileName <> targetWorkbook.Name Then

Set sourceWorkbook = Application.Workbooks.Open(path & "\" & fileName)

'复制每个工作表

worksheetsCount = sourceWorkbook.Worksheets.Count

For i = 1 To worksheetsCount

'如果名称相同,则跳过该工作表

For j = 1 To targetWorkbook.Worksheets.Count

If targetWorkbook.Worksheets(j).Name = sourceWorkbook.Worksheets(i).Name Then

GoTo NextIteration

End If

Next j

'将工作表复制到目标工作簿

sourceWorkbook.Worksheets(i).Copy After:=targetWorkbook.Worksheets(targetWorkbook.Worksheets.Count)

NextIteration:

Next i

'关闭已经复制完的工作簿

sourceWorkbook.Close False

End If

fileName = Dir

Wend

'保存目标工作簿

targetWorkbook.Save

'关闭目标工作簿

targetWorkbook.Close

'显示消息框提示处理完成

MsgBox "完成合并工作簿操作。"

End Sub

```

在这个VBA程序中,首先会打开第一个工作簿作为合并后的目标工作簿。接着,程序会获取目标工作簿的路径,然后遍历该路径下的所有工作簿。对于除了目标工作簿本身以外的每个工作簿,程序都会打开它,并将其所有工作表复制到目标工作簿中。最后,程序会保存目标工作簿并显示一个消息框来提示处理完成。#excel技巧#
http://www.lryc.cn/news/91103.html

相关文章:

  • WuThreat身份安全云-TVD每日漏洞情报-2023-05-22
  • Eclipse教程 Ⅵ
  • Seaborn.load_dataset()加载数据集失败最佳解决方法
  • java 区分缺陷Defects/感染Infections/失败Failure
  • 如何学习R-Meta分析与【文献计量分析、贝叶斯、机器学习等】多技术融合?
  • 分布式锁的应用场景与分布式锁实现(二):基于Redis实现分布式锁
  • 【JavaSE】Java基础语法(四十二):NIO
  • Linux---systemctl
  • 零钱兑换,凑零钱问题,从暴力递归到动态规划(java)
  • Vue登录界面精美模板分享
  • Linux设备驱动程序(二)——建立和运行模块
  • 【算法】单调栈问题
  • Hack The Box - 关卡Dancing
  • 【软件设计与体系结构】 软件体系结构风格
  • detectron2 使用教程
  • 哈希表常用数据结构
  • Java字节流
  • arm3399主板-使用ubuntu20.04搭建LVS-DR(netplan)
  • Go中同/异步与锁的应用~~sync包
  • Flask知识点2
  • R语言生物群落(生态)数据统计分析与绘图(从数据整理到分析结果展示)
  • 代码随想录训练营Day58| 739. 每日温度 496.下一个更大元素 I
  • 设计模式-命令模式
  • 软考——下午题部分,例题一,二,三,六
  • 关于render: h => h(App)的解释
  • flask实现简易图书管理系统
  • 2021 年全国大学生物联网设计竞赛(华为杯)全国总决赛获奖名单
  • 操作系统复习2.3.5-管程
  • List Set Map Queue Deque 之间的区别是什么?
  • unity行为决策树实战详解