VBA宏实现Excel数据拆分:将非“总表”工作表数据独立复制
需积分: 11 126 浏览量
更新于2024-09-05
收藏 483B TXT 举报
在Excel中,"拆分表格"(通常指的是数据的复制和移动到新的工作表)是一项常见的操作,尤其是在处理大量数据时,可能需要将特定部分的数据独立出来,以便于管理和分析。这段代码是用VBA(Visual Basic for Applications)编写的,适用于Microsoft Excel,它定义了一个名为"拆分"的子过程(Sub),用于根据Excel工作表的名称对"总表"(或指定的"ܱ")中的数据进行拆分。
首先,我们来看看这段代码的组成部分:
1. **变量声明**:
- `Dim sh As Worksheet`: 定义一个变量sh,代表工作表对象。
- `Dim arr As Variant`: 定义arr为可变类型的数组,用于存储"总表"的整个数据范围。
- `Dim brr()`: 定义brr为动态数组,用于临时存放要移动的数据行。
2. **遍历工作表**:
- `For Each sh In Worksheets`: 遍历所有的工作表,除了"总表"。
- `If sh.Name <> "总表" Then`: 这个条件判断避免处理"总表"本身。
3. **数据筛选和复制**:
- `For i = 3 To UBound(arr)`: 从数组arr的第三行开始(因为第一列通常包含行名或索引),检查当前行的第1列是否与当前工作表的名称匹配。
- `If arr(i, 1) = sh.Name Then`: 如果匹配,则进入内部循环,增加计数器n并复制匹配行的数据到brr数组中。
- `brr(n, s) = arr(i, s)`: 逐个复制当前行的每个单元格值。
4. **移动数据到目标工作表**:
- `sh.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(UBound(brr), UBound(brr, 2)) = brr`: 当找到匹配的工作表后,将brr数组中的数据移动到该工作表的最后一行下方,填充完整个列宽。
5. **结束循环**:
- `Next sh`: 结束对所有工作表的遍历。
通过这个子过程,"拆分"函数会根据每个工作表的名称,将"总表"中对应的数据复制到各自的工作表上,从而实现了数据的分割和管理。这是一个实用的工具,可以帮助用户更有效地组织和分析数据,尤其是当数据量大、需要分类展示时。执行此过程前,请确保已经安装了VBA宏,并且有足够的权限来运行自定义代码。
2021-10-11 上传
206 浏览量
158 浏览量
743 浏览量
2024-11-13 上传
yingying19841128
- 粉丝: 0
- 资源: 1
最新资源
- 支持水平滚动视图ScrollView效果
- 51单片机 pwm波产生.zip
- 音游SDVX.zip
- pivotal-cli:用于处理 Pivotal Stories 的简单命令行工具
- 阻抗分析软件 Zview3.1最新版本.zip
- ocpp1.6.zip
- ComputerArchitecture:计算机架构项目
- habitat-challenge:栖息地挑战代码
- DecomposeText v2.2 (分解文字为图层).rar
- Five Tier-crx插件
- magedebugbar
- Lab-3A:Wireless Comms '21 Spring的代码和文档
- godot-engine.github-integration:Godot Engine插件,用于在Godot的Editor中集成本地GitHub客户端。 无需打开浏览器即可管理您的项目!
- dexter:用于响应式单页应用程序和移动 Web 应用程序的全功能框架
- 信息管理平台登录界面模板
- win-zfs:Windows中ZFS的用户模式实现