跳到主要内容

如何在Excel中将逗号分隔的文本字符串转换为列表或行?

doc将逗号值转换为列表1

假设您有一个用逗号分隔的单元格值列表,现在,您需要将这些用逗号分隔的文本字符串转换为多行或一列,如下面的屏幕快照所示。 如何在Excel中一次基于逗号分隔符将多个单元格值拆分为行?

使用VBA代码将逗号分隔的文本字符串转换为行

使用 Kutools for Excel 将逗号分隔的文本字符串转换为行


使用VBA代码将逗号分隔的文本字符串转换为行

以下VBA代码可以帮助您将多个逗号分隔的单元格值转换为列,请执行以下操作:

1。 按住 Alt + F11键 键,然后打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下宏粘贴到 模块 窗口。

VBA代码:将逗号分隔的文本字符串转换为行或列表

Sub RedistributeCommaDelimitedData()
'Updateby Extendoffice
    Dim xArr() As String
    Dim xAddress As String
    Dim Rg As Range
    Dim Rg1 As Range
    On Error Resume Next
    xAddress = Application.ActiveWindow.RangeSelection.Address
    Set Rg = Application.InputBox("please select the data range:", "Kutools for Excel", xAddress, , , , , 8)
    If Rg Is Nothing Then Exit Sub
    Set Rg = Application.Intersect(Rg, Rg.Parent.UsedRange)
    If Rg Is Nothing Then Exit Sub
    Set Rg1 = Application.InputBox("please select output cell:", "Kutools for Excel", , , , , , 8)
    If Rg1 Is Nothing Then Exit Sub
    xArr = Split(Join(Application.Transpose(Rg.Value), ","), ",")
    Rg1.Resize(UBound(xArr) + 1) = Application.Transpose(xArr)
    Rg1.Parent.Activate
    Rg1.Resize(UBound(xArr) + 1).Select
End Sub

3。 然后按 F5 键以运行此代码,在弹出的对话框中,选择要转换的数据范围,请参见屏幕截图:

doc将逗号值转换为列表2

4。 并点击 OK,在以下对话框中,指定要在其中输出结果的单元格,请参见屏幕截图:

doc将逗号值转换为列表3

5。 点击 OK 按钮,所选的逗号分隔单元格值已转换为行列表。 看截图:

doc将逗号值转换为列表4


使用 Kutools for Excel 将逗号分隔的文本字符串转换为行

如果你有 Kutools for Excel,其 分裂细胞 实用程序,您可以根据需要根据逗号分隔符快速将逗号分隔的单元格值拆分为多行或多列。

Kutools for Excel : 带有300多个便捷的Excel加载项,可以在30天内免费试用. 

安装后 Kutools for Excel,请执行以下步骤:

1。 选择您要基于逗号分隔符转换为行的单元格值。

2。 然后点击 库工具 > 合并与拆分 > 分裂细胞,请参见屏幕截图:

3。 在 分裂细胞 对话框中选择 拆分为行 选项下 Type 部分,然后从 指定分隔符 部分,检查 其他名称 复选框,然后在文本框中输入逗号,请参见屏幕截图:

doc将逗号值转换为列表6 6

4。 然后点击 Ok,然后会弹出另一个对话框,提醒您选择要放入结果的单元格,请参见屏幕截图:

doc将逗号值转换为列表7

5。 然后点击 Ok 按钮,逗号分隔的单元格已根据逗号分隔符分为多行,请参见屏幕截图:

doc将逗号值转换为列表8

单击以了解有关此拆分单元格功能的更多信息…

立即下载和免费试用Excel的Kutools!


演示:使用 Kutools for Excel 将逗号分隔的文本字符串转换为行

Kutools for Excel:具有300多个方便的Excel加载项,可以在30天内免费试用,没有任何限制。 立即下载并免费试用!

相关文章:

如何通过回车将单元格分为多列或多行?

如何在Excel中将单元格值拆分为多个列?

最佳办公生产力工具

热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。  单击此处获取您最需要的功能...

kte选项卡201905


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
Comments (3)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
update to work for a single input cell (mentioned by Sid posted before me). Probably a way to do this for both scenarios, but this worked for me, I had the same issue.

Sub RedistributeCommaDelimitedData_singleCell()

'Updateby Extendoffice 201592

Dim xArr() As String

Dim xAddress As String

Dim Rg As Range

Dim Rg1 As Range

On Error Resume Next

xAddress = Application.ActiveWindow.RangeSelection.Address

Set Rg = Application.InputBox("please select the data range:", "Kutools for Excel", xAddress, , , , , 8)

If Rg Is Nothing Then Exit Sub

Set Rg = Application.Intersect(Rg, Rg.Parent.UsedRange)

If Rg Is Nothing Then Exit Sub

Set Rg1 = Application.InputBox("please select output cell:", "Kutools for Excel", , , , , , 8)

If Rg1 Is Nothing Then Exit Sub



' xArr = Split(Join(Application.Transpose(Rg.value), ","), ",") -------- need this if you have multiple input cells in your input range (Rg)

' replace with this for single input cell for Rg:

xArr = Split(Rg.value, ",")

Rg1.Resize(UBound(xArr) + 1) = Application.Transpose(xArr)

Rg1.Parent.Activate

Rg1.Resize(UBound(xArr) + 1).Select



End Sub
This comment was minimized by the moderator on the site
I have a cell with 667 characters, of which 119 are commas.With this VBA code I can't split. Can you help me please?Thank you very much!
This comment was minimized by the moderator on the site
Hi, I have a single row but this formula do not work for single row while it works for multiple rows could you guide on that would be a great help Thanks
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations