ExcelVBA 将多张工作表中的数据合并到一张工作表中

VBA案例:使用过程,把多个表的总计,登记到新的工作表 需求 有三张表,把每张表的名称与总价提取到新的一张工作表中 1. 表1 2. 表2 3. 表3 4. 新表 4. 点击按钮,显示人员名称与总价 解决方法 1、 'Worksheet.name代表了工作表的名称,可以用它取得或修改工作表名 2、 'Worksheets引用工作表的两种格式 '1、根据工作表的显示位置:Worksheets(1) '2、根据工作表的名称:Worksheets(“xx”) 3、 ' Worksheets.Count 所有工作表 Opti 阅读详情

在工作中,我们经常遇到多张工作表合并到一张工作表的问题,比如希望将图1所示中各分表中保存的成绩记录,汇总到工作簿中的"成绩表"工作表中,可以用图2下面的程序。

图1 七(3)班工作表中的成绩记录

 

图2 汇总结果

Sub hebing()     '把各班成绩表中的记录合并到"成绩表"工作表中     Dim sht As Worksheet     Set sht = Worksheets("成绩表")     sht.Rows("2:" & sht.rows.count).Clear      '删除成绩表中的原有记录     Dim wt As Worksheet, xrow As Integer, rng As Range     For Each wt In Worksheets                   '循环处理工作簿中的每张工作表         If wt.Name <> "成绩表" Then             Set rng = sht.Range("A1048576").End(xlUp).Offset(1, 0)             xrow = wt.Range("A1").CurrentRegion.Rows.Count - 1             wt.Range("A2").Resize(xrow, 7).Copy rng         End If     Next End Sub

第4行代码意思是将"成绩表"工作表赋值给sht对象,在VBA中,给对象赋值,前面必须加Set关键字。

第5行代码中的sht.rows.count表示sht工作表总共有多少行;在VBA中,Rows表示工作表或某个区域中所有行组成的集合。Rows("2:3")表示选中工作表的第2行到第3行。

第7行代码中的wt代表工作表集合中的一个工作表,随着循环变换。

第9行代码表示wt工作表中数据A列下面的第一个空单元格。Range("A1048576")表示工作表最下面一个单元格。

Range对象的End属性返回包含指定单元格的区域最尾端的单元格,返回结果等同于在单元格中按【End+方向键】(上、下、左、右方向键)组合键得到的单元格。

Range对象的Offset属性获得相对于安远隔区域一定偏移位置上的单元格区域。Offset(1, 0)表示单元格下面一个单元格。

第10行表示A1单元格所在当前区域的行数减1。

第11行表示将子表中的数据复制到汇总表的空白区域。

Range对象的Resize属性将指定的单元格区域有目的地扩大或缩小,得到一个新的单元格区域。Range("B2").Resize(5,4).Select表示将B2单元格扩展为一个5行4列的单元格区域。

 


微信公众号:VBA168

淘宝店铺地址:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-21233576391.4.1af0683dzrx3oU&id=584940166162

关注微信公众号,每天及时接收Excel VBA经典示例讲解。

淘宝店铺提供Excel定制服务。

祝你工作和学习更轻松!

 

【Excel VBA入门】批量数据操作:不同表单中数据2秒快速合并 接下来是核心功能,通过Range对象的Copy方法将整片的数据一次拷贝到目标表,就是下面的这一句代码,有点长不便于理解,那么我们详细的解释一下 阅读详情

相关推荐

Excel VBA项目:高效合并相似数据

提供清晰的错误消息能够帮助用户理解发生了什么错误,并据此采取动。此外,记录错误详情到一个日志文件可以帮助跟踪和分析错误发生的原因:' ... 可能出错的代码 ...Exit Sub' 记录错误到日志文件End Sub。

weixin_34535286的博客 1141

利用VBA代码合并多个Excel表格

利用VBA代码合并多个Excel表格

Hqq_CSDN的博客 7356

excel_VBA快速合并多表数据

自己学习VBA编程时,利用excel内VBA宏编写的简单命令,涉及一些基础的操作,亲测可用,初学者可以借鉴,也能利用其解决一些简单的办公问题。

VBA将excel中的多个工作表sheet合成一个工作表多个工作簿的多个工作表合并为一个工作簿

VBA将excel中的多个工作表sheet合成一个工作表多个工作簿的多个工作表合并为一个工作簿

tanghuan0827的博客 9329

vba宏如何快速的把多个excel表合并成一个excel表(便捷高效)

我们需要把多个excel表都放在同一个文件夹里面,并在这个文件夹里面新建一个excel。如图所示: 接下来我们打开新建excel表格,按快捷键Alt+F11进入图示界面,或右键单击sheet1,找到“查看代码”。 然后我们双击箭头所指 的sheet1.将宏代码复制到图示位置。 Sub 合并当前目录下所有工作簿的全部工作表() Dim MyPath, MyName, AWbName Dim Wb As Workbook, WbN As String Dim G As Long Dim Num As

weixin_48149733的博客 2万+

Excel中利用vba多个sheet合并在一个sheet中的方法

vba代码如下: Sub 合并当前工作簿下的所有工作表() Application.ScreenUpdating = False For j = 1 To Sheets.Count If Sheets(j).Name &amp;lt;&amp;gt; ActiveSheet.Name Then X = Range(&quot;A65536&quot;).End(xlUp).Row + 1 Sheets(j).UsedRan...

辉的博客 2万+

【添加详尽注释】Excel VBA合并不同工作簿所有工作表一张工作表

【添加详尽注释】Excel VBA合并不同工作簿所有工作表一张工作表,可根据注释修改以满足各种实际用途。

weixin_43245418的博客 2507

【学习笔记】别怕,EXCELVBA其实很简单(第2版)

Excel VBA,没你想的那么难 第一章 概述 介绍了VBA的作用:减少无脑地重复性Excel操作 宏的录制:开发工具->录制宏(可设置快捷键)->使用相对引用->操作->停止录制 可以在 插入->按钮 里面设置按钮快捷键 宏的源代码就是由VBA编写,可以在 宏->编辑 里面查看 VB= Visual Basic For Applications 第二章 认识编辑工具 VBA编译器(Visual Basic Editor)打开方式: Excel窗口

m0_57440510的博客 8865

[Excel VBA]將不同工作簿的同名工作表合併作業

關於數據處理工作,嘗試利用Excel VBA製作一支程式,功能為將不同工作簿的同名工作表合併作業,重點摘要如下: 1.Application.FileDialog.AllowMultiSelect = True : 供使用者可挑選欲合併的多個工作簿檔案(.xls or .xlsx)。 2.Workbooks().Close SaveChanges:=False :當工作簿的數據處理完畢...

分享实用工具、好书阅读、教育学习与思维概念等等多元化的主题。 3136

vfp复制表结构_Excel VBA工作薄 7.8 单个工作薄所有工作表数据合并 100+都不怕

前景提要()通过之前的几节的分享,小伙伴们应该能够熟练的掌握工作表的新建和重命名等一些简单的操作了,既然已经有了一些基本的基础之后,我们现在开始增加难度,学习一些更加实用性的操作吧,今天我们来分享下批量合并单个工作薄下所有工作表数据工作薄?工作表?有什么不同,还比较懵的小伙伴们建议看看这一系列的第一节分享,这里就不再重复说明了,批量合并工作表在大家的日常工作中是非常常见的,因为有小伙伴在我一开始...

weixin_39788960的博客 316

[VBA]EXCEL同工作簿中多工作表合并VBA代码

代码分为三部分: 第一部分是新建一个汇总的工作表,并重新自定义命名; 第二部分是逐一将各个工作表复制粘贴到汇总工作表中; 第三部分为提示,即当合并工作完成后弹出提示。 代码如下: Sub Comb() Dim i% On Error Resume Next Sheets(1).Select Worksheets.Add '新建一个工作表 Sheets(1).Name = "汇总工作表" ...

xiaotian0925的博客 2353

pb9实现在两个工作簿之间进工作表复制

下面的函数f_excel_hb,可以实现“将工作簿filename_s中的工作表sheetname_s以新的工作表名称sheetname_t,复制到工作簿filename_t的最后” public function boolean f_excel_hb (string filename_s, string filename_t, string sheetname_s, string sh

yyoinge的专栏 5098

excel 如何用vba将某一条记录移动到另一张工作表中_R语言—Excel表的高效处理

说起Eecel表,让我想起就是一个Excel文件中的各种sheet,有时候sheet数据的更新为了方便,会有分开sheet存储不同时间段的数据,甚至是分开不同的excel文件,在分析数据的时候,要把这么多分散的数据集中在一张sheet似乎是比较让人烦恼的,所以下面就介绍一下如何用R语言高效实现将Excel表的数据批量合并、更新,希望对大家工作有所帮助。一、合并多个excel文件的表成为一个shee...

weixin_31766871的博客 1678

[Excel VBA]如何將一個工作簿的所有工作表合併至同一個工作表?

關於數據處理工作,嘗試利用Excel VBA製作一支程式,功能為將一個工作簿的所有工作表合併至同一個工作表,重點摘要如下: 1.利用Application.FileDialog語法,供使用者可挑選欲合併的工作簿檔案(.xls or .xlsx)。 2.利用Worksheets.Count語法,取得工作表數量。 3.利用Application.ScreenUpdating語法,定義執程式...

分享实用工具、好书阅读、教育学习与思维概念等等多元化的主题。 888

【原创】如何将多个工作簿中相同格式的工作表合并到一个工作表

如何将多个工作簿中相同格式的工作表合并到一个工作表中 Sub Books2Sheets() '定义对话框变量 Application.ScreenUpdating = False Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) ...

weixin_34268169的博客 1063

字段合并_ExcelVBA工作薄 7.11玩转不规则数据合并 字段不在同一个工作表

前景提要()上一节我们学习了将单个工作薄几个字段不同的工作表的内容汇总在一个工作表的方法,在上节的操作中,我们主要是通过通过InputBox来实现工作表字段的选择的,InputBox来实现输入的话,有一个很明显的好处就是我们并不需要通过手动输入的方式来确认字段,避免了出错的可能性,但是随着使用的不断深入,我们会发现InputBox又有一个弊端,来看看假设我现在想要将三个学科VBA,python,j...

weixin_35294082的博客 231

通过VBA合并Excel工作表(支持复制数)

工作中经常会用到的把几个Excel文件合并到一个,或者是把一个Excel文件里的所有Sheet合并到一个Sheet来进统计。下面分别提供用vba宏来解决这两个问题的方法。 1、合并Excel文件 打开一个空Excel文件,Alt+F11,插入一个模块,开始写代码: Sub MergeWorkbooks() Dim FileSet Dim i As Integer

hxmcnu的专栏 2097

ExcelVBA选择区域(有合并)中删除清除空

【问题】关于删除空,以前是用函数来完成工作的,今天有人提出问题,传来这个文件,现有数据,1w多,其中有部分列有不同合并单元格,跨也不一样。如果要进筛选删除空,有一定的时间与难度。函数可能不好做哦!还是用VBA做一个吧,以后相同的工作也可复用,方便,也可考虑整合到VSTO中。【代码】共享如下(含测试代码)Sub yhd选择区域删除空() Dim SelRng As Range ...

fsyuheduo的博客 641
上一篇: ExcelVBA Workbook工作簿对象介绍
下一篇: ExcelVBA批量添加PDF文件
snail一路向前
博客等级 码龄12年 74粉丝 32原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值