多行拆分需求

假如一个单元格包含多行信息,比如说一些唯一的ID信息,我需要将该列的这些多行信息进行拆分,将其拆分为多行,其余列信息进行复制。例如如下图所示的示例。

可以看到,该Excel表格的A列每一行都有两行的数据,而我们的目的就是把这七行进行拆分为十四行,每一行包含单元格内单行的一条信息,其余列的文件进行复制,如下图所示。

解决方案

在这里提供一个可设定的解决方案,也是一个SUB子程序。源代码如下。

Sub SplitCopyValues()Dim arr As VariantDim rcount As LongDim ArrayLength As Integerrcount = Cells(Rows.Count, "A").End(3).Row   'Get the row num of last rowFor r = rcount To 1 Step -1             'Traversearr = Split(Cells(r, "A").Value, Chr(10))       'split each item by spaceArrayLength = UBound(arr) - LBound(arr) + 1         'calculate the array lengthFor i = 1 To ArrayLength - 1Rows(r & ":" & r).CopyRows(r + 1 & ":" & r + 1).Insert Shift:=xlDown  'insert the copied one into row+1Next iCells(r, "A").Resize(ArrayLength, 1).Value = WorksheetFunction.Transpose(arr)  'Filling in the Created rowsErase arr                   'delete the arr for new oneNext rApplication.CutCopyMode = FalseEnd Sub

SplitCopyValues主要就是满足了上述的多行拆分需求。我加了英文注释已经附在了代码里,非常简单明了,此外,为了理解和大家更改方便,我再用中文对代码进行详细注释。

在这里要注意的是Cells(Rows.Count, “A”).End(3).Row 中的3指的是向上搜索直到找到数据不同的消失位置。End()括号中的1、2、3、4分别代表向左、向右、向上、向下。END(x)表示从指定的单元格向左、向右、向上、向下最后一个有效RANGE。

下面是中文注释的代码:

Sub SplitCopyValues()        Dim arr As Variant              ' arr 存储要分裂的单元格的内容Dim rcount As Long               ' rount 就是有效的行数Dim ArrayLength As Integer      ' arr的长度,n行长度就为n'Get the row num of last row 拿到有效的行数,具体操作为:Cells(Rows.Count," A ") 拿到A列的工作簿的最底下一个单元格(包括空)'.End(3) 的目的是从最底下的单元格向上寻找,找到第一个非空的单元格'.Row的目的是记录刚刚那个单元格的行数rcount = Cells(Rows.Count, "A").End(3).RowFor r = rcount To 1 Step -1             'Traverse    对每行的行数进行循环,从最后往前进行遍历arr = Split(Cells(r, "A").Value, Chr(10))       'split each item by space 将该单元格以Chr(10)为分隔符进行分割ArrayLength = UBound(arr) - LBound(arr) + 1         'calculate the array length  计算分割后的ARR的长度For i = 1 To ArrayLength - 1                      '对Arr内的每个元素进行遍历Rows(r & ":" & r).Copy                          '将该行进行复制Rows(r + 1 & ":" & r + 1).Insert Shift:=xlDown  'insert the copied one into row+1  '把复制的行插入到该单元格所在行的下一行Next iCells(r, "A").Resize(ArrayLength, 1).Value = WorksheetFunction.Transpose(arr)  'Filling in the Created rows 将arr转置为列后插入到刚刚生成的哪些新的行中,也就是把A列填好Erase arr                   'delete the arr for new oneNext rApplication.CutCopyMode = False       '这是为了防止大规模复制粘贴而弹出系统默认的对话框End Sub

希望该方法可以帮到你,有问题评论区见,我很快会回复。

VBA 单一单元格的多行内容拆分为多行相关推荐

  1. 指定单元格里面的,内容发生变化,触发事件,调用VBA代码。

    指定单元格里面的,内容发生变化,触发事件,调用VBA代码._sun0322-CSDN博客_单元格变化触发vba 目录 ■通过改变一个单元格的内容,出发一个事件,根据改变的内容,进行相应的处理. ■扩展 ...

  2. easypoi导出一对多,合并单元格,且根据内容自适应行高

    easypoi导出一对多,合并单元格,且根据内容自适应行高 EasyPoi一对多导出 一.pom引入依赖 二.导出实体类 excelPoi常用注解说明 @Excel注解 @ExcelCollectio ...

  3. VBA,单元格处理,数据复制,格式设置,折线图,图表属性设置

    首先说一下.xlsm文件和.xlsx文件的区别: .xlsx文件只能存储数据,不能存储对数据进行处理的VB代码,而.xlsm文件既可以存储数据,又可以存储代码. 新建一个.xlsm文件(打开.xlsx ...

  4. 单元格内多个姓名拆分成一列_把订单按货品拆分成多行

    办公的小伙伴们,今天小编来和大家分享:如何将一个单元格中有多行数据拆分成多行. 看下图:要把订单按货品拆分成多行明细. 下面给出几种不同的方法. 方法一:借word来拆分内容 Step1:把表格复制到 ...

  5. 基于注解和EasyExcel指定单元格下拉选内容

    基于注解和EasyExcel指定单元格下拉选内容 1.场景描述 要求基于EasyExcel进行导出,有的单元格的内容必须是通过下拉选内容进行编辑,以便于后续修改导入,规避用户随意录入数据. 2.编写测 ...

  6. 10, excel vba 修改单元格的颜色

    看数据总是很累的,一堆密密麻麻的.哪个数据才是我想要的呢? 比如一列里有各种各样的数据,我想知道哪些单元格的数据大于11的? 又比如一列里有各种各样的数据,我想知道哪些单元格的数据大于111的? 这里 ...

  7. VBA查找单元格内指定文字并标红加粗

    VBA查找单元格内指定文字并标红加粗 功能: 选中想要查找的单元格,在函数内点击运行,实现将指定的文字标红加粗的功能 bug: 指定文字会区分大小写,如何让它不区分大小写? 改进 将是否加粗,和标记的 ...

  8. Excel VBA 之单元格格式

    一个频繁的任务就是给选中的单元格或区域设置格式.你的VBA过程可能需要查明某个具体单元格的格式.我们可以使用NumberFormat属性来找回单元格格式: ?Range("A1") ...

  9. excel如何快速自动让空白单元格填充上一行内容

    今天跟大家分享一下excel如何快速自动让空白单元格填充上一行内容 1.今天一下图为例跟大家演示一下空白单元格填充上一行内容. 2.选中要填充内容的单元格区域 3.点击下图选项(Excel工具箱,百度 ...

最新文章

  1. 利用Python实现十大经典排序算法(附代码流程)
  2. Axure RP pro 6.5 密钥
  3. linux 文件属性文件权限
  4. 白话Elasticsearch61-进阶篇之基于Term Vectors深入探查数据的情况
  5. 如何将低频内容应用转化为高频应用?
  6. DinamicX 详解:如何让盲人也能在线购物?
  7. 大四课程设计之基于RFID技术的考勤管理系统(三)数据库设计
  8. 集群环境下定时调度的解决方案之Quartz集群
  9. python爬虫 同花顺_python 爬虫--同花顺-使用代理
  10. 网络安全课第二节 XSS漏洞检测防御
  11. 【Arduino实验03 智能红绿灯】
  12. SharePoint 2013 安装中间出错了怎么办? 每一次安装都是一段曲折的路【1603(0x643) 】...
  13. 悲催:一个80后程序员的爱情故事【视频】-但愿我不是那个陈旭阳!55...
  14. 学习STM32的理由
  15. PC按键精灵读取txt文本出现乱码怎么办?按键精灵手机助手读取txt文本中文变问号怎么办?
  16. 《鱿鱼游戏》开场了|谁才是影评人的御用写作工具
  17. 云服务器及其存储性能测试方法
  18. vue 防止多次点击重复提交v-preventReClick
  19. Ubuntu 7.04--桌面
  20. ROS统计在线用户数脚本

热门文章

  1. 面对肺炎疫情小贴士-IT奶爸带娃记
  2. Day7 字符串详解——python学习之路
  3. ProcessingJoy —— 粒子流逝特效【JAVA】
  4. 经济学人阅读China ,Barriers to Sinology
  5. AWS 服务器登录和配置
  6. iframe子页面调用父页面javascript函数的方法
  7. RAC学习笔记(2)-DB2和Oracle体系结构
  8. ddn专线(ddn专线接入)
  9. git文件没有绿色红色小图标解决办法
  10. 黑马程序员————高新技术————eclipse及IDE开发工具介绍