跳到主要內容

如何在Excel中將逗號分隔的文本字符串轉換為列表或行?

doc將逗號值轉換為列表1

假設您有一個用逗號分隔的單元格值列表,現在,需要將這些用逗號分隔的文本字符串轉換為多行或一列,如下面的屏幕快照所示。 如何在Excel中一次基於逗號分隔符將多個單元格值拆分為行?

使用VBA代碼將逗號分隔的文本字符串轉換為行

用Kutools for Excel將逗號分隔的文本字符串轉換為行


使用VBA代碼將逗號分隔的文本字符串轉換為行

以下VBA代碼可以幫助您將多個逗號分隔的單元格值轉換為列,請執行以下操作:

1。 按住 Alt + F11鍵 鍵,然後打開 Microsoft Visual Basic for Applications 窗口。

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將逗號分隔的文本字符串轉換為行

如果你有 Excel的Kutools,其 分裂細胞 實用程序,您可以根據需要根據逗號分隔符將逗號分隔的單元格值快速分成多行或多列。

Excel的Kutools : 帶有300多個便捷的Excel加載項,可以在30天內免費試用. 

安裝後 Excel的Kutools,請執行以下步驟:

1。 選擇您要基於逗號分隔符轉換為行的單元格值。

2。 然後點擊 庫工具 > 合併與拆分 > 分裂細胞,請參見屏幕截圖:

3。 在 分裂細胞 對話框中選擇 拆分為行 選項下 類別 部分,然後從 指定分隔符 部分,檢查 其他 複選框,然後在文本框中輸入逗號,請參見屏幕截圖:

doc將逗號值轉換為列表6 6

4。 然後點擊 Ok,然後會彈出另一個對話框,提醒您選擇要放入結果的單元格,請參見屏幕截圖:

doc將逗號值轉換為列表7

5。 然後點擊 Ok 按鈕,逗號分隔的單元格已根據逗號分隔符分為多行,請參見屏幕截圖:

doc將逗號值轉換為列表8

單擊以了解有關此拆分單元格功能的更多信息…

立即下載和免費試用Excel的Kutools!


演示:用Kutools for Excel將逗號分隔的文本字符串轉換為行

Excel的Kutools:具有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選項卡為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