excel拆分单元格的方法 excel如何拆分单元格

No.1
Excel 拆分单元格内数据是一个高级技能 , 一般情况下 , 很少这么操作 。
当然 , 会这个操作的人也很多 。
首先 , 我们理解一下什么是”拆分单元格数据” , 本节讲的”拆分单元格”不是把一个列拆分为几个列 , 而是以某种格式的分隔符为标志 , 把单元格内的数据分别拆开 , 然后添加到不同的单元格中 。

excel拆分单元格的方法 excel如何拆分单元格


这个操作同样用到一个方法 , 很明显 , vba 操作数据表格的时候 , 首要有个对象 , 然后就是对这个对象进行什么样的方法处理 。
拆分单元格数据 , 用到 Range 对象 , 对象的方法是 TextToColumns , 意思就是将文本转换为列 。
方法参数如下图所示:

excel拆分单元格的方法 excel如何拆分单元格


No.2
这个方法参数比较多 , 但是应用的时候 , 不会全部写出来 , 毕竟使用到的仅仅是某些 。
语法:
Range.TextToColumns(Destination、 DataType、 TextQualifier、 ConsecutiveDelimiter、 Tab、Semicolon、Comma、Space、 Other、 OtherChar、 FieldInfo DecimalSeparator、 ThousandsSeparator、 TrailingMinusNumbers)

excel拆分单元格的方法 excel如何拆分单元格


方法它执行之后 , 会将拆分的数据 , 默认依次放到被拆分单元格之后 。
如上图所示 , 粉色部分为被拆分数据 , 拆分之后的数据就保存到之后浅灰色单元格内 。
这功能在应用中 , 常常用到将一些混合的数据进行分列处理 。
比如 , 有一列数据 , 里面有姓名、年龄、身份证号、地址 , 四个关键字内容 。
要分别把这四个内容放到不同列里面 , 就用这个方法来实现 。
其中 , 这四个关键字之间要有一个分隔符 , 一般有空格 , 逗号 , Tab 制表符 , 分号等字符 。
当然 , 如果不喜欢这些字符 , 也可以自定义分隔符 。
使用 Other=True , 和 OtherChar 来定义分隔符 。
注意:
如果 Other 指定为 True , 那么 OtherChar 参数就为必填项目 , 同时使用 。
参数:Destination 定义了被拆分后的数据存放地址 。
No.3
下实例操作演示:

excel拆分单元格的方法 excel如何拆分单元格


Private Sub TextToColumnsChange()Application.DisplayAlerts = FalseDim xValue As StringxValue = https://www.iketao.cn/2023/01/28/a3be0046fea48770/InputBox("数据输入", "请输入数据:", "This is a TextToColumn List.")If VBA.Len(VBA.Trim(xValue)) = 0 Then Exit SubDim cell As RangeSet cell = ActiveSheet.Range("B2:B10")With [A1].Offset(2, 0).Resize(cell.Rows.Count, UsedRange.Cells.Columns.Count + 1).Clear '清除原数据内容 End WithWith cell.Item(1).Offset(0, 1) '清除原拆分内容.Select.UnMergeSelection.ClearEnd WithWith cell.Item(1) '添加表头.Value = "https://www.iketao.cn/2023/01/28/a3be0046fea48770/数据内容".HorizontalAlignment = xlCenter.Interior.Color = RGB(221, 92, 255).Borders.LineStyle = 1.Columns.AutoFitEnd WithWith cell.Offset(1, 0) '添加原数据内容.ClearContents.Value = https://www.iketao.cn/2023/01/28/a3be0046fea48770/xValue.HorizontalAlignment = xlCenter.Interior.Color = RGB(221, 92, 255).Borders.LineStyle = 1.Columns.AutoFitWith .Offset(0, 1).Value = .Offset(0, -1).Value.TextToColumns Space:=True'拆分数据内容 并向后填充End WithEnd With'设置拆分内容格式 With cell.Offset(0, 1).Resize(cell.Rows.Count + 1, cell.Cells(2, 1).End(xlToRight).Column - cell.Cells(2, 1).Column) 'Me.Cells(3, Me.Cells.Columns.Count).End(xlToLeft).Column - 2).Columns.AutoFit.RowHeight = 28.HorizontalAlignment = xlCenter.Interior.Color = RGB(221, 223, 255).Borders.LineStyle = 1End With'合并表头 cell.Cells(1, 2).Resize(1, cell.Cells(2, 1).End(xlToRight).Column - cell.Cells(2, 1).Column).MergeWith cell.Item(1).Offset(0, 1).Value = "https://www.iketao.cn/2023/01/28/a3be0046fea48770/拆分后内容"End WithApplication.DisplayAlerts = TrueEnd Sub

推荐阅读