ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 Office知识技巧免费学 打造核心竞争力的职场宝典
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 985|回复: 8

[求助] 论坛中找到拆分工作表的代码,保留了原表的格式。求助同时保留多列公式

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-3-6 21:05 | 显示全部楼层 |阅读模式
求助论坛上各位大神:之前在论坛上找到一段VBA代码,可以按照某列关键字进行拆分单元格,拆分后可保留原有的格式。表格“N、P、R、T、U、W、X ”7列有公式,请大虾帮忙看看如何同时保留表格“N、P、R、T、U、W、X ”7列公式。 感谢!
  1. Sub Macro1()
  2.     Dim arr, brr, d As Object, k, t, a, i&, j&, m&, l&, sh As Worksheet
  3.     Application.ScreenUpdating = False
  4.     Application.DisplayAlerts = False
  5.     Set d = CreateObject("scripting.dictionary")
  6.     arr = [a1].CurrentRegion
  7.     For i = 2 To UBound(arr)
  8.         d(arr(i, 5)) = d(arr(i, 5)) & "," & i
  9.     Next
  10.     k = d.Keys
  11.     t = d.items
  12.     brr = arr
  13.     Set sh = ActiveSheet
  14.     For i = 0 To d.Count - 1
  15.         m = 1
  16.         a = Split(t(i), ",")
  17.         For j = 1 To UBound(a)
  18.             m = m + 1
  19.             For l = 1 To UBound(arr, 2)
  20.                 brr(m, l) = arr(a(j), l)
  21.             Next
  22.         Next
  23.         sh.Copy
  24.         With ActiveWorkbook
  25.             .Sheets(1).UsedRange.Offset(m).Clear
  26.             .Sheets(1).[a1].Resize(m, UBound(arr, 2)) = brr
  27.             .SaveAs ThisWorkbook.Path & "" & k(i) & ".xls"
  28.             .Close
  29.         End With
  30.     Next
  31.     Application.DisplayAlerts = True
  32.     Application.ScreenUpdating = True
  33. End Sub


复制代码


分拆.rar

16.88 KB, 下载次数: 35

头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2018-3-6 22:39 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-6 22:43 来自手机 | 显示全部楼层
朱荣兴 发表于 2018-3-6 22:39
准确的说,这段代码拆分后是不能保留原格式的。可到我的主题里下载    灵活拆分工具。

感谢版主回复,格式可以进一步调整,主要是7列的公式能保留下来就完美了。
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2018-3-6 22:46 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-6 23:00 来自手机 | 显示全部楼层
朱荣兴 发表于 2018-3-6 22:46
呵呵,真正保留原格式就可以保留公式了呀。

顺便请教下,如果在这个代码原型的基础上去保留以上几列的公式,那么在下面那个循环里面需要如何修改呢?非常感谢解答

TA的精华主题

TA的得分主题

发表于 2018-3-6 23:06 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-7 07:26 来自手机 | 显示全部楼层
abc123281 发表于 2018-3-6 23:06
可以保留原格式    采用复制方法

小白想请教一下需要怎么修改呢?谢谢。
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2018-3-7 08:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-7 09:09 | 显示全部楼层

小弟在这里谢谢管理员大神解答!另再请教2个问题:如果把标题行的格式也保留下来以及“I”列以后的格式一起保留下来,并且每个代理商放在一个对应的代理商的工作簿里这个代码还需要怎么修改一下呢?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,每天学会一个新技能

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2020-4-2 12:14 , Processed in 0.058547 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

沪公网安备 31011702000001号 沪ICP备11019229号

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:徐怀玉律师 李志群律师

快速回复 返回顶部 返回列表