改进《》,使代码更具通用性,可以实现将工作表拆分为工作表或工作簿
对excel表格数据按照某列的值,将工作表拆分
1,工作表按列拆分为工作表
单列关键值
2,工作表按列拆分为工作簿
单列关键值
1、2举例
原始数据
拆分为工作表
拆分为工作薄
3,工作簿按列拆分
对包含多个工作表的工作簿进行拆分,支持每个工作表中关键值列号都不同(单列关键值)
3.1,复制法
举例
1个工作簿中有3个工作表,需要按照“属地”所在列的值拆分整个工作簿
工作簿拆分结果
3.2,删除法
以上工作簿按列拆分采用的是复制数据的方法,以下为删除法,删除非同一关键值的行。
经测试,删除法比原本的复制法快2倍以上,尤其是使用先union行再删除的方法
4,工作表按列拆分,支持多列关键值
如果需要对数据按多列关键值合并进行拆分,可以选择添加辅助列,先将多列的值合并,在使用以上sub进行拆分;也可以重新定义一个sub既支持单列又支持多列关键值的
注意:
关键值列最好不存在为空的单元格,如果分隔符delimiter也为空的话,可能导致关键值错误进而拆分错误,比如
b1和c1为空值,textjoin分隔符为空则导致关键值d1和d2相同,为避免这种情况delimiter最好不为空,且为数据中不存在的字符,避免最后replace导致保存文件名出错
举例
原始数据
拆分为工作簿
到此这篇关于excel·vba按列拆分工作表和工作簿的实现的文章就介绍到这了,更多相关excel vba按列拆分内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论