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

Yarısını kəsdim və Fu Zhi başımı mənəvi olaraq qaldıran kimi, doktor Gu beş metr aralıda, hələ də nazik çiyinlərlə pişik kimi səssizcə gəzərək mənə tərəf addımladı. Biləyimdən tutdum və tez bir zamanda əlimdəki işi bitirmək istədim, amma tələsik dəri qırıldı ... Tanrı bilir ki, o vaxt hansı ləng ifadələr vermişdim. Qarşımdan keçib durdu, gözləri yerdəki qa

阿勒坦湖第2碑(第29号)
: : :
är ärdam üčün tüpüt qanqa : yalabaš bardim : kälmädim
ང་རང་བོད་ཀྱི་ཧན(བཙན་པོ)ལ་ཕོ་ཉར་བསྐྱོད་ཅིང་ཕྱིར་མ་ལོག །
我作为出使吐蕃汗的使者而出发,我未能从那里返回。 https://t.cn/R2WxDIZ


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 当日下午16时许,在源汇区昌建外滩小区核酸检测点,因参加核酸检测的人员较多,等待时间较长,违法行为人叶某(女,29岁)对工作人员不满而大声吵闹、谩骂,现场维持秩
  • 河北邢台:健步邢襄涉嫌非法组织开展活动多年属地管理部门视而不见 一旦发生人员伤亡谁承担      2021年做装修行业的武某认识了家住邢台市区的黄某(黄利辉)该
  • 由于佛典记载,地藏菩萨在过去世中,曾经几度救出自己在地狱受苦的母亲,并在久远劫以来就不断发愿要救度一切罪苦众生尤其是地狱众生,所以这位菩萨被认为具“大孝”和“大
  • 我们不能改变岁月,我们不能改变自然规律,但是,我们可以把爱放在心里,爱在心里,爱的人就一直在[爱心][爱心][爱心] 光阴里的故事,斑驳陆离,穿过岁月的窗,几分
  • [笑而不语]#百年陇原展风华# 【助力健康防护 “知感冒 防流感”全民科普公益活动走进兰州】12月25日,“知感冒 防流感”全民科普公益行走进兰州,连花清瘟携手
  • 快天亮了是谁又被狠狠刀了[泪]是我我当时收pb卡见过最多就是吐槽“苏音童润姚卡根本出不出去”“对啊对啊他们五个付邮送都没人要”“真难出还得捆出” 谁又懂我们的感
  • 」《歌曲介绍》(上篇)01 以灰之名/Remains「你看见那片旱无歉意的荒原 向往着如常兑现 你有过的亏欠」这首歌原始创作的灵感来自石黑一雄的小说《长日将尽》
  • ”“不是吗?以前那么忙,现在退休了,突然闲下来就想找点事做,”“你爸可不闲,他还打算带我去旅游呢,他是想要弥补弥补你们,”“弥补?我爸疯了还是我们疯了?再说弥补
  • 大小洞天最出名,或者说广大游客最奔着去的应该是它的布景—婚纱摄影基地。小金坛是真的年味超浓[福气虎]临近过年,只要寥寥几十块就能拥有一晚上的快乐 ​p1 虎年
  • ”郭斌给出了自己详细的理由,王楠的优势是发球,而后改革为不得遮挡,王楠的问题是慢热,但又从二十一分改为十一分制,王楠的特点是旋转,但是又小球改成大球……郭斌表示
  • 生活本就是一半烟火,一半努力,相信人生的一切拼搏都是值得的,时光虽匆匆,只要对喜欢的事不放松,定有收获。无论怎样的境地地,认真做好喜欢的事,待好周围的一切,充实
  • 真正的成功,不是来自别人的认可和评价,而是由自我满足带来的宁静平和的心态。这,就是深圳给的安全感~#吉祥君[超话]# 人生的问题,你要么选择解决它,要么就选择解
  • 就那点销售量好意思叫嚣,给脸不要脸本来年纪长了几岁不想参与这些破事,但是真恶臭难改你们那么厉害让你家姐姐解约啊,不解看不起你们[二哈]这么便宜还就这数的清的几个
  • 7.每错的一道题,每丢的一分,都是为了遇见对的人;而你们每对的一道题,每得的一分,都是为了遇见更好的自己。6.其实每一朵花,都有它自己的生命。
  • 那个老二又来整天找我麻烦了,但是由于那时我职位上有所提升了,再加上在公司也有一定的“名声”老二故意整我的时候,我也是不鸟他的,他虽然能整我,但是以他的权力没有办
  • #异地恋让你坚持下去的理由##失恋分手挽回男朋友女朋友##春节路况关注97# FM97平安小鱼儿为您关注春节假期出行信息:今天是大年初五,天气依旧晴好,但早晚
  • 今年是第七年,这条路继续走。四、互动 引文物出展柜孔府旧藏服饰最具价值的是色彩信息,为了让服饰文物走出展柜与观众充分互动,在展柜外设置植物染面料色彩展示板,综合
  • 12星座说哪些话绝对不能信白羊座:一个人挺好的金牛座:吃完就去减肥双子座:会保守秘密巨蟹座:我信你说的话狮子座:已经忘了他了处女座:不想听到他的消息天秤座:没什
  • 这对水果蔬菜店的冲击是非常大的,另外这个生意太苦了,每天凌晨就去进货,要营业到很晚赚不到钱不说,水果的保存和处理损耗也是要了命的。.加盟店加盟店加盟项目绝对不要
  • 考研的话,考研对我来说是如果没有一次通过法考,我还可以多几年的时间准备。很纠结,想听听大家的看法,我的情况是先考研呢,还是先工作呢。