Excel VBA 实例 一行数据分割为多行

 

Excel VBA 实例 一行数据分割为多行...



一、任务需求

在工作表的第9行,有5000列数字如图所示,四个数字以逗号分隔,需要将四个数字分离出来,并且逐行显示。简言之,就是一行数据变为四行。



二、任务规划

Sir想到了两种方案:第一种方案,遍历第9行的5000个单元格,判断单元格内容是否有内容,如果有内容,就使用Split函数和逗号分割为一个数组Arr,再将数组的每个元素使用Offset属性填充到对应的四个单元格。这种方案需要注意的是数据的规范性,因为分离出来的数字要直接进行统计,因此不能含有空格。Sir注意到原来的数字中间有很多空格,因此需要在分离后使用Trim函数去掉数字前后的空格,或者分离之前使用Replace函数去掉半角空格和全角空格,第二个要注意的是Split函数对空字符进行分割之后,访问数组元素会报错。如测试所示。第三是逗号可能是半角也有可能是全角,因此必须先统一。



三、方案一实现代码,该代码在Sir电脑上共耗时72秒。



效率低下有两个原因:一是循环内使用if进行判断,二是多次使用单元格对象

如果不是一次性需求,则需要优化。

四、Sir的第二种方案是手工方案。现将第9行复制并转置为一列,替换掉空格和统一逗号以后,使用数据-分列方式,将数值分割为4列,再转置粘贴回原表的10-13行。当然也可以使用代码来完成。

五、最后想说的话,实战是提高VBA水平的捷径,即日起,不定期更新实战例子。如果觉得对您有帮助,欢迎赞赏哦!有定制服务需求的或是需要系统学习、拜Sir为师的随时欢迎。

本文系作者NextSeven原创,转载请注明出处。未经作者允许,请勿用于商业用途


    关注 MicrosoftOffice自动化办公服务


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册