excel按某个字符将一个单元格拆分成多个单元格

8 篇文章 1 订阅
5 篇文章 0 订阅

整数据,一个单元格中全按分号分隔数据,网上有SUBSTITUTE()函数将原字符替换成CHAR(10)换行符,然后粘贴成文本再复制到原表格中。本文档按函数拆分,略过复制粘贴过程,仅能处理较少的数据,以分号为例

1个分号:
=MID(原表!$B$29,1,FIND(";",原表!$B$29))
=MID(原表!$B$29,FIND(";",原表!$B$29)+1,LEN(原表!$B$29)-FIND(";",原表!$B$29))

2个分号:
=MID(原表!$B$29,1,FIND(";",原表!$B$29))
=MID(原表!$B$29,FIND(";",原表!$B$29)+1,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)-FIND(";",原表!$B$29))
=MID(原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1,LEN(原表!$B$29)-FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1))

3个分号:
=MID(原表!$B$29,1,FIND(";",原表!$B$29))
=MID(原表!$B$29,FIND(";",原表!$B$29)+1,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)-FIND(";",原表!$B$29))
=MID(原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1)-FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1))
=MID(原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1)+1,LEN(原表!$B$29)-FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1))

4个分号:
=MID(原表!$B$29,1,FIND(";",原表!$B$29))
=MID(原表!$B$29,FIND(";",原表!$B$29)+1,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)-FIND(";",原表!$B$29))
=MID(原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1)-FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1))
=MID(原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1)+1,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1)+1)-FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1))
=MID(原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1)+1)+1,LEN(原表!$B$29)-FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1)+1))

5个分号:
=MID(原表!$B$29,1,FIND(";",原表!$B$29))
=MID(原表!$B$29,FIND(";",原表!$B$29)+1,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)-FIND(";",原表!$B$29))
=MID(原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1)-FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1))
=MID(原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1)+1,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1)+1)-FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1))
=MID(原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1)+1)+1,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1)+1)+1)-FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1)+1))
=MID(原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1)+1)+1)+1,LEN(原表!$B$29)-FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29,FIND(";",原表!$B$29)+1)+1)+1)+1))

### 回答1: Sub SplitCell 每个单元格的内容sName Dim sName as String Dim sSplit as String sName = Cells(1,1).Value sSplit = Split(sName,",") For i = 0 to UBound (sSplit) Cells(1,i+1).Value = sSplit (i) Next i End Sub ### 回答2: 使用VBA编写代码,可以将一个单元格中的内容拆分多个单元格。以下是一个使用VBA的例子: Sub 拆分单元格内容() Dim 原单元格 As Range Dim 分隔符 As String ' 设置原单元格为A1 Set 原单元格 = Range("A1") ' 设置分隔符为逗号 分隔符 = "," ' 拆分单元格内容到相邻单元格单元格.TextToColumns Destination:=原单元格.Offset(0, 1), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _ Tab:=False, Semicolon:=False, Comma:=True, Space:=False, Other:=True, _ OtherChar:=分隔符 ' 清除原单元格内容 原单元格.ClearContents End Sub 在这个例子中,我们使用A1单元格作为原单元格,并将其内容拆分到相邻单元格。我们使用逗号作为分隔符,你可以根据需要更改分隔符。最后,我们清除了原单元格内容。 只需在Excel中的Visual Basic for Applications(VBA)编辑器中创建一个新的模块,然后将以上代码复制到模块中。你现在可以执行该宏,它将会拆分单元格内容并清楚原单元格内容。 ### 回答3: 在VBA中,我们可以使用Split函数和Range对象来实现将一个单元格的内容拆分多个单元格。 首先,我们需要选择要拆分单元格,并将其内容存储在一个变量中,例如: ```VBA Dim cellContent As String cellContent = Range("A1").Value ``` 这里假设要拆分单元格为A1,并将其内容存储在cellContent变量中。 接下来,我们可以使用Split函数将字符串按照指定的分隔符拆分多个部分。假设我们的分隔符是逗号(,),则可以使用以下代码: ```VBA Dim splitContent As Variant splitContent = Split(cellContent, ",") ``` splitContent将存储拆分后的内容数组。 然后,我们需要将拆分后的内容填充到多个单元格中。假设要将拆分后的内容填充到A1、B1、C1等连续的单元格中,可以使用以下代码: ```VBA Dim i As Integer For i = 0 To UBound(splitContent) Range("A1").Offset(0, i).Value = splitContent(i) Next i ``` 在上述代码中,通过循环遍历拆分后的内容数组,并使用Offset方法指定填充到的目标单元格。 最后,拆分后的内容将会填充到相应的单元格中。 以上是一个简单的VBA代码示例,通过使用Split函数和Range对象,我们可以将一个单元格的内容拆分多个单元格的内容。 注意:在使用这段代码之前,请确保已经在VBA编辑器中引用了Microsoft Excel对象库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值