当前位置:首页 > 生活百科

excel折叠行怎么设置(表格折叠展开操作方法)

栏目:生活百科日期:2025-01-21浏览:0

最近遇到一个小需求,如何将Excel单元格中的内容拆分到多行?

下图中左边是原始数据,每位员工需要上班的日期,合并在一个单元格内,日期之间间隔一个空白符;现在需要拆分成表右边所示的样子,即将员工需要上班的日期拆分成一行行数据;

传统的方法可以直接对班期列进行分列操作,再将分列所得数据一行行复制转置粘贴,步骤繁琐麻烦,这里用VBA处理,写好代码,一秒钟搞定,一劳永逸~

话不多说,让我们看下处理效果

思路

1、先看下数据,是否规律,有迹可循,可以发现班期列皆为日期之间加一个空白符,一个日期为8位数,长度为8;

2、计算每个单元格内日期的个数,这里利用【Int(Len(Sheets(&“Sheet1&”).Cells(i, 2)) / 9) + 1】先利用长度函数Len函数计算出单元格的长度;

再将其长度除以9(虽然每个日期的长度是8,但是日期后面皆跟了一个空白字符,所以除以9);

再利用int函数取整,最后结果需要加上1,因为最后一个日期后面没有空白符;

最终得出来的结果就是单元格内部包含的日期个数;如对B2单元格用此函数:INT(LEN(B2)/ 9) + 1=3,返回3;

3、依次循环从单元格内取出每一个日期,写入到Excel工作表中去,这里用MID函数;

4、在最外面嵌套一个大循环,依次对数据源班期列每一个单元格进行操作,依次取出所有的日期,写入Excel表格中,完成拆分。

代码

代码展示如下:

代码讲解:

1、新建一个新的插页,并重命名为【拆分】插页,用于存放拆分的数据,并将表头A1/B1单元格填入内容;

2、参数b主要是用来统计拆分插页目前数据一共有多少行,方便数据写入;

3、第一个for循环,循环插页Sheet1中班期列每个单元格;

4、参数a上面说过,为每个单元格内日期的个数;

5、再次利用一个for循环,依次取出日期,并将之写入到【拆分】插页中去;

这里的 Mid(Sheets(&“Sheet1&”).Cells(i, 2), (j &– 1) * 9 + 1, 8)为取数函数,第一个参数:要取字符串的单元格,第二个参数:要取字符串开始的位置,第三个参数:要取字符串的长度;

6、通过两次循环,完成数据拆分。

便于大家复制,详细代码如下:

Sub 拆分单元格()Dim a%, b%, i%, j%Sheets.Add After:=ActiveSheetActiveSheet.Name = "拆分"Sheets("拆分").Cells(1, 1) = "员工ID"Sheets("拆分").Cells(1, 2) = "班期"b = Sheets("拆分").Cells(Rows.Count, 1).End(xlUp).RowFor i = 2 To Sheets("Sheet1").Cells(Rows.Count, 2).End(xlUp).Rowa = Int(Len(Sheets("Sheet1").Cells(i, 2)) / 9) + 1For j = 1 To ab = b + 1Sheets("拆分").Cells(b, 1) = Sheets("Sheet1").Cells(i, 1)Sheets("拆分").Cells(b, 2) = Mid(Sheets("Sheet1").Cells(i, 2), (j - 1) * 9 + 1, 8)NextNextMsgBox "已完成"End Sub

小结

对于有规律的、经常需要操作的数据,最好利用VBA技术,一次编写,受益终身,摆脱繁琐的操作,本例中仅通过日期数据为大家做个展示,至于其它类型的数据拆分,只需要理清逻辑,对函数参数、代码做相应的修改即可。

纸上得来终觉浅,绝知此事要躬行,小伙伴们记得动手操作下,有问题,欢迎留言交流!

“excel折叠行怎么设置(表格折叠展开操作方法)” 的相关文章

cf补丁怎么用(一文解读cf补丁作用)

众所周知,CF每次版本更新的内容都非常多,除了一些新地图以及新武器外,有的时候还会新增一些新的游戏系统以及游戏玩法。而在不久后的CF新版本中很多玩家发现一个更新...

小程序支付开发流程,怎么开发小程序支付配置

1.小程序之微信支付虽然我们现行的小程序版本中没有支付这块功能,但是作为移动互联网中非常重要的一个功能还是需要了解下(老版本的小程序中有微信支付相关的功能代码在...

值得买的商用电脑(最值入手的3款商用电脑)

随着笔记本的发展,笔记本厂商针对不同的用户需求推出了游戏本、轻薄本、商用本、影音本等几大品类,但就目前产品来看,笔记本产品正在逐渐淡化严格的定位划分,比如游戏本...

c语言快速排序算法(快速排序算法代码c语言)

快速排序是一种不稳定排序,它的时间复杂度为O(n·lgn),最坏情况为O(n2);空间复杂度为O(n·lgn)。这种排序方式是对于冒泡排序的一种改进,它采用分治...

小米儿童电话手表怎么样(分享米兔儿童电话手表使用体验

每天孩子出行,作为家长最担心的就是其安全。由于孩子自控力差,配手机的话容易上网成瘾,被网络上不健康内容荼毒。思来想去,最后从小米商城入手了“米兔儿童电话手表4C...

100元的智能手机能用吗(百元智能手机推荐)

手机市场有一个十分有趣的现象:从厂商到数码爱好者,几乎所有人都在关注、推荐高端手机,但据统计至少30%的手机用户还是一直在买千元档机型,而Redmi在这一价位可...

2023,百度真正王者归来

配图来自Canva可画自从去年收购YY直播以及开启全面移动化战略以来,百度的基本面开始得到全面改善。与此同时,凭借多年积累的AI技术实力,百度宣布造车的举动也为...

dsp广告平台排名,dsp平台广告数量是多少

如果说当前有什么趋势是所有人都无法忽视的,那就是移动化。不需要砖家预测,看看正低着头在手机上阅读这篇文章的你就知道了。根据eMarketer的报告,2014年中...

java基础语法要学多久(java基础代码大全)

流程控制语句的语法吧~什么是流程控制语句?流程控制语句在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果有直接...

外汇交易行情软件排行(最好用的外汇行情软件推荐)

在投资市场众多的交易产品之中,只有外汇的交易对象是利用不同国家币种之间的汇率变化来获得盈利的,这需要投资者对于国际形式有着敏感而准确的判断。尽管外汇市场的吸引力...