当前位置:首页 > 办公设计 > Office教程 > 用VBA按列信息拆分数据到多张工作表

用VBA按列信息拆分数据到多张工作表

1年前 (2025-05-24)Office教程1780

本文为《别怕,Excel VBA其实很简单(第3版)》随书问题参考答案

在本问题中,要将拆分结果保存在新工作簿中,那可以在执行拆分数据的操作前,先新建工作簿及工作表来保存拆分结果。

在写过程前,可以在模块的开始位置先声明两个模块级变量或公共变量:表示保存拆分结果的工作簿ToWb和要拆分的数据表Sht,如:

Dim ToWb As Workbook, Sht As Worksheet

然后将新建保存结果的工作簿及工作表的代码写为单独的过程,如:

Sub ShtAdd()
Dim ShtCount As Integer '记录新建工作簿中包含的工作表数量
Set ToWb = Workbooks.Add '新建工作簿,并存到变量ToWb中
ShtCount = ToWb.Worksheets.Count
Dim i As Long, ShtName As String
i = 2
'Do循环语句用于在工作簿中新建保存拆分结果的工作表
Do While Sht.Cells(i, "A").Value <> ""
ShtName = Sht.Cells(i, "A").Value
If IsSht(ShtName) = False Then 'IF语句判断指定名称的工作表是否存在
ToWb.Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = ShtName
Sht.Rows(1).Copy ToWb.Worksheets(ShtName).Rows(1) '复制表头到新工作表中
End If
i = i + 1
Loop
'For循环语句删除新建的工作簿中原带的空工作表
Application.DisplayAlerts = False
For i = ShtCount To 1 Step -1
ToWb.Worksheets(i).Delete
Next i
Application.DisplayAlerts = True
End Sub

其中用到一个判断指定名称的工作表是否存在的自定义函数,代码为:

Function IsSht(ByVal ShtName As String) As Boolean '判断工作表名称是否存在
On Error Resume Next
If Worksheets(ShtName) Is Nothing Then
IsSht = False '工作表不存在,函数值为False
Else
IsSht = True '工作表已存在,函数值为true
End If
End Function

当然,这个判断工作表是否存在的代码,也可以直接写在过程中。

最后,再在原有程中,在执行拆分数据的操作前先调用上面的子过程ShtAdd,就能解决这个问题了,如:

Sub 拆分数据到工作表()
Dim ShtName As String, ToRng As Range, i As Integer, DataArr As Variant
Set Sht = ActiveSheet
Call ShtAdd ' 调用子过程,新建保存拆分结果的工作表及工作表
i = 2 '要拆分的第一条数据的行号
Do While Sht.Cells(i, "A").Value <> ""
ShtName = Sht.Cells(i, "A").Value
Set ToRng = ToWb.Worksheets(ShtName).Range("A1048576").End(xlUp).Offset(1, 0)
DataArr = Sht.Cells(i, "A").Resize(1, 8).Value
ToRng.Resize(1, 8).Value = DataArr '用数组传递数据
i = i + 1 '重设变量的值,以便下次循环能拆分新的记录
Loop
End Sub

代码容器中完成后的代码截图如下:

执行“拆分数据到工作表”的过程,就能工作表中的数据,按A列的信息拆分到不同工作表,保存在新工作簿中了。

扫描二维码推送至手机访问。

欢迎转载或分享本篇文章。

本文链接:https://www.jcba123.com/article/1461

分享给朋友:

“用VBA按列信息拆分数据到多张工作表” 的相关文章

Word文档瞎忙活和高效办公的区别,你属于哪一种?

Word文档瞎忙活和高效办公的区别,你属于哪一种?

同样的Word工作,为啥别人要比自己完成的快?那是因为你在某些不起眼的地方浪费太多时间。 今天给大家分享几个瞎忙活和高效使用Word办公的区别,看看你属于哪一种?   01、删除Word文档后面所有内容 删除某段以下所有内容。   低效率...

Excel筛选与高级筛选怎么用?(13招筛选使用大全)

Excel筛选与高级筛选怎么用?(13招筛选使用大全)

今天,给大伙分享一下Excel中的筛选与高级筛选功能,Excel筛选功能可以快速有效的帮助我们,从大量的数据中将我们想要的结果脱颖而出,是我们分析数据的好帮手。   本章目录   01、Excel单条件筛选 在众多数据中,我们希望能够将自己想要查看的人...

Excel切片器的使用,不仅好用,而且美观的筛选功能!

Excel切片器的使用,不仅好用,而且美观的筛选功能!

前几天,小汪老师有给大家讲解过在Excel中筛选功能的使用,今天,再来分享一种更为高端的筛选,那就是切片器。不像筛选功能那么麻烦,Excel切片器功能可以直接生成多个按钮,只需点几下,就能轻松得到我们想要的结果。     表格转为超级表 Excel切片器必须...

PPT走路的鞋子动画效果制作:菜鸟PPT动画之旅

PPT走路的鞋子动画效果制作:菜鸟PPT动画之旅

每个人每天最离不开的一件事情就是走路了,走路是我们每天必做的一件事情。这里易雪龙老师教大家制作一个好玩的小动画效果,走路的鞋子。一双鞋子会模仿人的脚步去走路,赶快来看看吧! 插入素材 步骤一、先可以在网上找一张漂亮的背景图片,然后插入到PPT中作为背景。 步骤二、将鞋子素材移动到最...

5个典型应用,学会Excel高级筛选

5个典型应用,学会Excel高级筛选

1、筛选指定条件的记录 如下图所示,要从数据表中筛选出“产品归类”字段中是“信用贷”的所有记录。 首先在空白单元格中写入要筛选的字段名称和要筛选的条件。 注意字段名称要和数据表中的字段名称完全一样,否则就筛选不出来了。 单击数据区域任意单元格,在【数据】选项卡下单击【高级】按...

PPT制作教程:如何使用PowerPoint制作手绘粉笔字效果PPT教程

PPT制作教程:如何使用PowerPoint制作手绘粉笔字效果PPT教程

PPT制作教程:如何使用PowerPoint制作手绘粉笔字效果PPT教程 当您在观看别人的PowerPoint时候,是否经常会看到类似于粉笔字效果呢? 今天的教程就教大家使用PPT制作粉笔字效果的幻灯片,特别是老师制作PPT课件的时候非常适用哦。  ...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。