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

excel vba 将多张数据表的内容合并到一张数据表

功能描述: 

一个Excel文件有很多个 样式相同 的数据表,

需要将多张数据表的内容合并到一张数据表里。

vba实现代码如下:

Attribute VB_Name = "NewMacros"
Option Explicit
Public Const Const_OutSheetName As String = "VBA汇总"
Public Const Const_PZSheetName As String = "配置"Sub 汇总()
Attribute 汇总.VB_Description = "宏由 LiuZW 录制,时间: 2023/08/19"
Attribute 汇总.VB_ProcData.VB_Invoke_Func = " 14"
'
' 汇总 Macro
' 宏由 LiuZW 录制,时间: 2023/08/19
''Dim i, j, k As Integer'创建“配置”数据表并提示用户填写配置Dim isExistPZ As BooleanisExistPZ = FalseFor i = 1 To Worksheets.CountIf Worksheets(i).name = Const_PZSheetName ThenisExistPZ = TrueExit ForEnd IfNext'定义表示要复制的区域的变量Dim mRow1, mColumn1, mRow2, mColumn2 As IntegerIf isExistPZ ThenmRow1 = Application.Worksheets(Const_PZSheetName).Range("B2").ValuemRow2 = Application.Worksheets(Const_PZSheetName).Range("B3").ValuemColumn1 = Application.Worksheets(Const_PZSheetName).Range("B4").ValuemColumn2 = Application.Worksheets(Const_PZSheetName).Range("B5").ValueIf mRow1 = 0 Or mRow2 = 0 Or mColumn1 = 0 Or mColumn2 = 0 Then'提示用户填写MsgBox ("请填写配置数据表后运行。")Exit SubEnd If'配置的填写有效性判断If Not IsNumeric(mRow1) Or Not IsNumeric(mRow2) Or Not IsNumeric(mColumn1) Or Not IsNumeric(mColumn2) ThenMsgBox ("配置数据表中键入的区域表述无效,请键入数字格式的行列号。")Exit SubEnd IfElse'创建“配置”数据表Sheets.AddActiveSheet.name = Const_PZSheetName'填写基础信息Application.Worksheets(Const_PZSheetName).Range("A1").Value = "不需要汇总的数据表名称"Application.Worksheets(Const_PZSheetName).Range("B1").Value = Const_PZSheetNameApplication.Worksheets(Const_PZSheetName).Range("C1").Value = Const_OutSheetNameApplication.Worksheets(Const_PZSheetName).Range("A2").Value = "复制区域的起始行"Application.Worksheets(Const_PZSheetName).Range("A3").Value = "复制区域的终止行"Application.Worksheets(Const_PZSheetName).Range("A4").Value = "复制区域的起始列"Application.Worksheets(Const_PZSheetName).Range("A5").Value = "复制区域的终止列"'提示用户填写MsgBox ("请填写配置数据表后运行。")Exit SubEnd If'判断是否已有“VBA汇总”数据表For i = 1 To Worksheets.CountIf Worksheets(i).name = Const_OutSheetName ThenMsgBox ("要生成的数据表“" + Const_OutSheetName + "”存在同名数据表,请修改或删除同名数据表后重试。")Exit SubEnd IfNext'创建“VBA汇总”数据表Sheets.AddActiveSheet.name = Const_OutSheetNameColumns("A:A").SelectSelection.NumberFormatLocal = "@"'复制各个数据表的数据并粘贴到汇总表For i = 1 To Worksheets.CountDim mSheetName As StringmSheetName = Worksheets(i).name'判断当前数据表是否为 无需汇总的数据表'MsgBox ("当前数据表的第一行一共有" + CStr(Application.CountA(Sheets(Const_PZSheetName).Rows(1))) + "个数据")'定义当前数据表是否为 无需汇总的数据表 的标记,True表示无需汇总,False表示需要汇总Dim mKey As BooleanmKey = FalseFor j = 2 To Application.CountA(Sheets(Const_PZSheetName).Rows(1))If mSheetName = Sheets(Const_PZSheetName).Cells(1, j) Then'MsgBox ("当前数据表“" + mSheetName + "”是不需要汇总的数据表")mKey = TrueExit ForEnd IfNext'如果当前数据表不是 无需汇总的数据表,就执行汇总If mKey = False Then'执行复制和粘贴Application.Worksheets(mSheetName).ActivateApplication.Worksheets(mSheetName).Range(Cells(mRow1, mColumn1), Cells(mRow2, mColumn2)).SelectSelection.Copy'判断要粘贴的位置并粘贴Application.Worksheets(Const_OutSheetName).ActivateDim usableRowCount As IntegerusableRowCount = Application.Application.Sheets(Const_OutSheetName).Range("b65536").End(xlUp).Row + 2Application.Worksheets(Const_OutSheetName).Cells(usableRowCount, 2).SelectSelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False'填充第一列For k = 0 To mRow2 - mRow1Application.Worksheets(Const_OutSheetName).Cells(usableRowCount + k, 1).Value = mSheetNameNextEnd IfNext
End Sub

 文件链接:数据表合并.bas

下载后直接在excel 查看代码处导入文件即可。

相关文章:

excel vba 将多张数据表的内容合并到一张数据表

功能描述: 一个Excel文件有很多个 样式相同 的数据表, 需要将多张数据表的内容合并到一张数据表里。 vba实现代码如下: Attribute VB_Name "NewMacros" Option Explicit Public Const Const_OutSheetName As String "V…...

接口和抽象类的区别?解析接口和抽象类的特点和用法

接口和抽象类的区别?解析接口和抽象类的特点和用法 引言 在面向对象编程中,接口和抽象类是两个非常重要的概念。它们都可以用于定义一组相关的方法,但在实际使用中有一些差异。本文将探讨接口和抽象类的区别,并通过示例代码和测…...

vscode-vue项目格式化

一、插件要求 Prettier Vetur 二、配置文件 {"workbench.startupEditor": "newUntitledFile","files.autoSave": "off", // 关闭文件自动保存,避免开发时候页面变化"editor.tabSize": 2, // tab距离"ve…...

SAP MM学习笔记26- SAP中 振替转记(转移过账)和 在库转送(库存转储)1- 移动Type间振替转记

SAP 中在库移动 不仅有入库(GR),出库(GI),也可以是单纯内部的转记或转送。 1,振替转记(转移过账) 2,在库转送(库存转储) 1&#xff…...

SAP SPL(Special Ledger)之注释行项目-Noted Items

财务凭证过账里常见的SPL特殊总账标识根据业务主要有三种,BoE-billing of exchange: 汇票业务,包括商业汇票和银行汇票;Down Payment,预付款业务,包括供应商和客户预付款和申请;其它,一般是保证…...

学习平台助力职场发展与提升

近年来,随着互联网技术的发展,学习平台逐渐成为了职场发展和提升的必备工具。学习平台通过提供丰富的课程内容、灵活的学习时间和个性化的学习路径,帮助职场人士更好地提升自己的技能和知识储备,为职场发展打下坚实的基础。 学习…...

有没有免费格式转换工具推荐?PDF转化为PPT的方法

在当今职场生活中,掌握文件格式转换技能变得异常重要。将PDF文档转换为PPT格式可以在演讲、报告等场合更好地展示和传达信息,为我们的专业形象增添亮点,接下来我们可以一起来看一下“有没有免费格式转换工具推荐?PDF转化为PPT的方法”相关的…...

【LeetCode-经典面试150题-day12】

20.有效的括号 题意: 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括…...

TCP机制-延迟应答,捎带应答

在看本篇博客前推荐先看TCP中窗口和滑动窗口的含义以及流量控制 延迟应答和捎带应答都是TCP用于提高网络传输效率的机制 延迟应答 当发送端发送数据给接收端了以后,按道理接收端的内核会立即返回ACK(应答报文)给发送端,而且ACK&a…...

【Redis从头学-8】Redis中的ZSet数据类型实战场景之用户积分榜

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Re…...

Springboot内嵌SQLite配置使用

版本号 MacOS Apple M1 | Jdk17 | Maven 3.8.5 | SpringBoot 2.6.9 | SQLite 3.42.0.0 pom.xml <dependencies><dependency><groupId>org.xerial</groupId><artifactId>sqlite-jdbc</artifactId><version>3.42.0.0</version&g…...

【微服务学习笔记】认识微服务

【微服务学习笔记】认识微服务 单体架构 分布式架构 微服务架构 SpringCloud 服务拆分和注意事项 服务拆分的案例demo 各个服务之间的数据库都是相互独立的&#xff0c;你不能直接访问对方的数据库&#xff0c;只能从一个服务像另外一个服务发起远程调用 在订单模块的服务中 …...

基于Android R快速编译recovery-ramdisk.img

Android默认没有单编recovery-ramdisk.img的命令&#xff0c;我们可以自己修改Makefile实现 修改&#xff1a;build/core/Makefile 添加&#xff1a; .PHONY: recovery-ramdisk-nodeps recovery-ramdisk-nodeps: $(MKBOOTFS) | $(COMPRESSION_COMMAND_DEPS)echo "make …...

Redis分布式缓存

分布式缓存 -- 基于Redis集群解决单机Redis存在的问题 单机的Redis存在四大问题&#xff1a; 1.Redis持久化 Redis有两种持久化方案&#xff1a; RDB持久化 AOF持久化 1.1.RDB持久化 RDB全称Redis Database Backup file&#xff08;Redis数据备份文件&#xff09;&#x…...

最大公约数和最小公倍数

最大公约数&#xff1a; 概念&#xff1a; 公约数中最大的称为最大公约数。 对任意的若干个正整数&#xff0c;1总是它们的公因数。 公约数与公倍数相反&#xff0c;就是既是A的约数同时也是B的约数的数&#xff0c;12和15的公约数有1&#xff0c;3&#xff0c;最大公约数就是…...

数据结构——二叉搜索树(附带C++实现版本)

文章目录 二叉搜索树概念 二叉树的实际应用二叉树模拟实现存储结构二叉搜索树构成二叉搜索树的查找插入操作中序遍历二叉树的删除循环(利用左子树最右节点&#xff09;递归(利用右子树根节点) 二叉树拷贝二叉树资源的销毁 二叉树实现完整代码总结 二叉搜索树 概念 二叉搜索树…...

C++(3)C++对C的扩展Extension

类型增强 1、类型更加严格 不初始化&#xff0c;无法通过编译&#xff1b;C不初始化&#xff0c;则随机赋值 #include <iostream> #include <stdlib.h>int main() {const int a 100; //真正的const,无法修改 // int *p &a; 报错const int *p…...

在vscode(idea)使用GitHub账号、Copilot异常

在idea使用GitHub账号、Copilot异常 登录GitHub显示 Invalid authentication data.Connection refused: connect或者副驾驶显示 Failed to initiate the GitHub login process. Please try again.一般网上的方法推荐使用token登录&#xff0c;或者降级副驾驶 经过研究&#x…...

新的后端渲染:服务器驱动UI

通过API发送UI是一种彻底的新方法&#xff0c;将改变传统的UI开发。 一项正在改变我们对用户界面 (UI) 的看法的技术是通过 API 发送 UI&#xff0c;也称为服务器驱动UI。这种方法提供了新水平的活力和灵活性&#xff0c;正在改变 UI 开发的传统范例。 服务器驱动 UI 不仅仅是…...

Postman如何做接口自动化测试?

前言 什么是自动化测试 把人对软件的测试行为转化为由机器执行测试行为的一种实践。 例如GUI自动化测试&#xff0c;模拟人去操作软件界面&#xff0c;把人从简单重复的劳动中解放出来。 本质是用代码去测试另一段代码&#xff0c;属于一种软件开发工作&#xff0c;已经开发完…...

基于LLM的LSP服务器llm-ls:为IDE注入AI代码补全能力

1. 项目概述&#xff1a;一个为IDE注入AI灵魂的LSP服务器 如果你和我一样&#xff0c;每天都在和代码编辑器打交道&#xff0c;从Vim到VSCode&#xff0c;从IntelliJ到Jupyter&#xff0c;那你一定对LSP&#xff08;Language Server Protocol&#xff09;不陌生。它让我们的编辑…...

GitHub中文化插件完整指南:3分钟让GitHub界面变中文的终极方案

GitHub中文化插件完整指南&#xff1a;3分钟让GitHub界面变中文的终极方案 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 还在为GitH…...

RT-DTER最新创新改进系列:(购买资料的粉丝反馈涨点的TOP1模块)我们将BiFPN的加权双向融合之力,注入RT-DETR的端到端Transformer架构,创新与涨点的双丰收!!!!!!

RT-DTER最新创新改进系列&#xff1a;&#xff08;购买资料的粉丝反馈涨点的TOP1模块&#xff09;我们将BiFPN的加权双向融合之力&#xff0c;注入RT-DETR的端到端Transformer架构&#xff0c;创新与涨点的双丰收&#xff01;&#xff01; 购买相关资料后畅享一对一答疑&#…...

你的桌面需要一个会思考的伙伴吗?DyberPet让虚拟宠物拥有情感与智慧

你的桌面需要一个会思考的伙伴吗&#xff1f;DyberPet让虚拟宠物拥有情感与智慧 【免费下载链接】DyberPet Desktop Cyber Pet Framework based on PySide6 项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet 每天面对冰冷的屏幕&#xff0c;你是否曾幻想过有…...

终极音频解密指南:3分钟解锁QQ音乐加密格式

终极音频解密指南&#xff1a;3分钟解锁QQ音乐加密格式 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 想要让QQ音乐下载的加密歌曲在任何播放器上自由播放吗&#xff1f;q…...

AI Agent + 指纹浏览器:从0搭建MCP Server实现批量账号自动化管理

我是张大鹏&#xff0c;做了十多年人工智能&#xff0c;带过不少项目。说实话&#xff0c;AI Agent 最难的不是生成内容&#xff0c;是"动手干活"——大模型再强&#xff0c;如果只能输出文字而不能操控真实环境&#xff0c;自动化就永远差最后一公里。最近在研究 In…...

告别紫黑格子!SFM/VMD模型导入避坑指南:VMT文件常见错误与Notepad++语法高亮配置

SFM/VMD模型材质修复实战&#xff1a;从紫黑格子到完美渲染的终极指南 当你兴奋地将精心挑选的MMD模型导入Source Filmmaker时&#xff0c;屏幕上刺眼的紫黑格子就像一盆冷水浇灭了创作热情。这种"模型界的404错误"并非世界末日&#xff0c;而是VMT文件在向你发送求…...

光子计算如何突破LLM推理中的KV缓存瓶颈

1. 光子计算在KV缓存管理中的突破性应用在当今大语言模型&#xff08;LLM&#xff09;推理领域&#xff0c;一个令人惊讶的事实正在发生&#xff1a;计算能力已不再是主要瓶颈。随着上下文窗口从最初的几千token扩展到如今的百万级&#xff08;如Qwen2.5&#xff09;&#xff0…...

LDO噪声特性分析与测量优化指南

1. LDO噪声特性与测量基础低噪声线性稳压器&#xff08;LDO&#xff09;作为电源管理系统的核心器件&#xff0c;其噪声特性直接影响着精密模拟电路、射频系统和传感器等关键模块的性能表现。与开关电源不同&#xff0c;LDO通过线性调节方式工作&#xff0c;避免了高频开关噪声…...

AI编程新范式:基于.cursorrules的角色扮演开发环境实战指南

1. 项目概述&#xff1a;当AI助手有了“人设”&#xff0c;开发会变成一场情景喜剧吗&#xff1f;最近在折腾Cursor这个AI编程工具&#xff0c;发现了一个特别有意思的玩意儿&#xff1a;.cursorrules文件。简单来说&#xff0c;这玩意儿就像是你给Cursor这位“AI程序员”设定的…...