VBA常用小代码:一键将总表数据拆分为多个(实用转载)https://t.cn/A6VMGnfe

Sub NewShts()

Dim d As Object, sht As Worksheet, arr, brr, r, kr, i&, j&, k&, x&

Dim Rng As Range, Rg As Range, tRow&, tCol&, aCol&, pd&

Application.ScreenUpdating = False '关闭屏幕更新

Application.DisplayAlerts = False '关闭警告信息提示

Set d = CreateObject("scripting.dictionary") 'set字典

Set Rg = Application.InputBox("请框选拆分依据列!只能选择单列单元格区域!", Title:="提示", Type:=8)

'用户选择的拆分依据列

tCol = Rg.Column '取拆分依据列列标

tRow = Val(Application.InputBox("请输入总表标题行的行数?"))

'用户设置总表的标题行数

If tRow = 0 Then MsgBox "你未输入标题行行数,程序退出。": Exit Sub

Set Rng = ActiveSheet.UsedRange '总表的数据区域

arr = Rng '数据范围装入数组arr

tCol = tCol - Rng.Column + 1 '计算依据列在数组中的位置

aCol = UBound(arr, 2) '数据源的列数

For i = tRow + 1 To UBound(arr) '遍历数组arr

If Not d.exists(arr(i, tCol)) Then

d(arr(i, tCol)) = i '字典中不存在关键词则将行号装入字典

Else

d(arr(i, tCol)) = d(arr(i, tCol)) & "," & i '如果存在则合并行号,以逗号间隔

End If

Next

For Each sht In Worksheets '遍历一遍工作表,如果字典中存在则删除

If d.exists(sht.Name) Then sht.Delete

Next

kr = d.keys '字典的key集

For i = 0 To UBound(kr) '遍历字典key值

If kr(i) <> "" Then '如果key不为空

r = Split(d(kr(i)), ",") '取出item里储存的行号

ReDim brr(1 To UBound(r) + 1, 1 To aCol) '声明放置结果的数组brr

k = 0

For x = 0 To UBound(r)

k = k + 1 '累加记录行数

For j = 1 To aCol '循环读取列

brr(k, j) = arr(r(x), j)

Next

Next

With Worksheets.Add(, Sheets(Sheets.Count))

'新建一个工作表,位置在所有已存在sheet的后面

.Name = kr(i) '表格命名

.[a1].Resize(tRow, aCol) = arr '放标题行

.[a1].Offset(tRow, 0).Resize(k, aCol) = brr '放置数据区域

Rng.Copy '复制粘贴总表的格式

.[a1].PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

.[a1].Select

End With

End If

Next

Sheets(1).Activate '激活第一个表格

Set d = Nothing '释放字典

Erase arr: Erase brr '释放数组

MsgBox "数据拆分完成!"

Application.ScreenUpdating = True '恢复屏幕更新

Application.DisplayAlerts = True '恢复警示
End Sub

️Pater noster, qui es in caelis, Sanctificétur nomen tuum.
Advéniat regnum tuum.
Fiat volúntas tua, sicut in caelo et in terra.
Panem nostrum cotidiánum da nobis hódie,
Et dimítte nobis débita nostra sicut et nos dimíttimus debitóribus nostris.
Et ne nos indúcas in tentatiónem,
Sed líbera nos a malo. Amen~

早安妹纸们今日的妆面更新,素模来自DIM Aria。是六分特体宝宝♥️超级大头宝d(`・∀・)b头围比三分还要大呢!这一只真人风自由妆,妥妥的化了森系感的宝贝考量眼型后设计了一个卧蚕比较明显的妆,肤质肌理上也比淡妆偏浓一些,更有乡村情调✨唇部是哑光偏橘厚唇真棒呀[羞嗒嗒]#bjd妆面[超话]##bjd接妆##bjd[超话]##Dim Aria#


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 网友反馈:早晨4点左右我睡的第二觉 ,梦见被好友骗钱,然后找到母亲,就看见自己几个牙没了,没过多久就醒了,我最近也有些口腔炎症,听人说掉牙是不好的征兆,梅花易数
  • 感觉现在大学生的娱乐活动好多月月都有文艺表演之前做为围观群众我也乐享其成安安静静的做个吃瓜观众挺好[吃瓜][吃瓜][吃瓜]风水轮流转没想到我也有一天会站在那个舞
  • 为了遵守现代人的基本礼仪给彼此一点私密空间保持神秘就一直没有跟室友要互粉 直到刚刚我评论了一个cba解说的微博 然后我另一个室友恰巧刷到这个解说的微博又看到我的
  • 【云县不断加强人才队伍建设】今年以来,云县积极实施人才强县战略,适时引进教育、卫生、水利等紧缺急需专业技术人才;全县事业单位定向招聘农村基层服务项目服务期满的高
  • 夜深了每一个人都不容易今晚停下来了以前抱怨考研有多苦有点累现在竟然想念这种感觉身体让你停下来静静想想思考人生真好拥有的一定要认真珍惜失去了哭泣万遍亦难追回之前现
  • #家装设计# 【112平的北欧风三居室,书房还装上了实用的榻榻米】小沃今天分享的是一套建筑面积112平米的北欧风三居室案例,房子整体的搭配是以小清新的配色加上木
  • 现​在​到手整​整10​片日‎抛‎​只​要39!!
  • #汤小记# 匆匆忙忙凑够了三千字,学院奖也截稿了,马马虎虎吧四月份的尾巴五月份的开头还有有点忙碌明天五一,放4天,今晚看见大家都拉着行李箱,学校顿时有点冷清,想
  • 底妆一向是我在彩妆上最肯花钱投资的单品,可能有妹子会问,皮肤已经很好了是否需要买好的粉霜,我的答案是绝对需要。#小艾CRYSTAL[超话]##小艾每日爱用品#千
  • 眉毛比较浓而且很混乱很浊的人一般脾气大,眉毛过低有压眼睛的的视觉感的人个性急躁,田宅宫狭窄,家里居住面积不会太大,而且与家里人的矛盾会比较多。眉毛也生的过高两眉
  • 地藏经是可以帮助超度一切亡魂的经书,念地藏经,鬼道的众生可以感应到您的愿力,明理后就会慢慢被您感化,从而放下心中的怨恨。#这个世间,唯有美食与爱不可辜负# 生活
  • (天津日报)#世事洞明# [微风]#历史上的今天# 【马燕红为我国赢得第一个体操世界冠军】1979年12月9日,马燕红获体操世界冠军。(via.历史上的今天)#
  • 那时候经常想干嘛要绕那么多弯弯呢,有什么说什么你想让我怎么样你直接说出来不就好了,咱们有一说一有二说二。我就不说了毕竟从我嘴里说出来 不值钱#好朋友关系淡了是
  • 聚焦农村产权交易、“村务卡”实施、村级财务管理会计核算改革、农村集体“三资”平台监管等4个方面的问题和不足,深入开展农村集体“三资”监管专项整治,“三资”管理领
  • 我的老妈,从不记得我的生日,也从没给我过生日。1216我过生日啦,自从喜欢上两位先生,2和6就成为我心里代表美好的数字,所以这个生日超级开心[兔子](今天两位先
  • @微言教育 @河南教育@文明河南 @文明开封 @平安兰考@兰考手机台 @精彩兰考#邵阳新闻# 【2019年中国扶贫日#“互联网+”社会扶贫论坛# 洞口分会召开
  • 期待演员周冬雨的下一个十年#时讯陕西娱乐版##周冬雨回忆出道经历# 周冬雨在《小小的追球》中跟外国友人聊天时用英文回忆起了自己的出道经历,艺考时张艺谋导演的助理
  • #张小屁今天的成绩还垃圾不!# 垃圾的垃圾的放心啦 法语阅读期中考试86.5 主要扣点是选择题 没太读明白 想要跳过的地方都被设置问题了 课内的话 有的问题
  • 你放着我来拖”。        其实你是可以发现,随着成长,父母越来越会去询问你的看法和意见。
  • #实力科普#《神奇女侠:死亡地球》(Wonder Woman Dead Earth)第1期预览神奇女侠从上千年的沉睡中醒来,发现置身于一个核战争后满目疮痍的未来