我有一份工作簿,其中包含有換行符(通過ALT + ENTER輸入)的單元格,但現在必須再次將它們分隔爲單獨的行......所有單元格在列A中。Excel VBA - 將多行分隔成行
單元格中的每一行都有一個項目符號點(例如「*」),它可以作爲excel腳本在此時斷開線的信標。任何人都有一些代碼可以幫助我做到這一點?我不知道如何去這個...
樣品圖片附後。
感謝
我有一份工作簿,其中包含有換行符(通過ALT + ENTER輸入)的單元格,但現在必須再次將它們分隔爲單獨的行......所有單元格在列A中。Excel VBA - 將多行分隔成行
單元格中的每一行都有一個項目符號點(例如「*」),它可以作爲excel腳本在此時斷開線的信標。任何人都有一些代碼可以幫助我做到這一點?我不知道如何去這個...
樣品圖片附後。
感謝
您可以使用拆分與CHR(10)或VbLf
Dim cell_value As Variant
Dim counter As Integer
'Row counter
counter = 1
'Looping trough A column define max value
For i = 1 To 10
'Take cell at the time
cell_value = ThisWorkbook.ActiveSheet.Cells(i, 1).Value
'Split cell contents
Dim WrdArray() As String
WrdArray() = Split(cell_value, vbLf)
'Place values to the B column
For Each Item In WrdArray
ThisWorkbook.ActiveSheet.Cells(counter, 2).Value = Item
counter = counter + 1
Next Item
Next i
不,你有數組的每一行的地方,不同的細胞
沒有必要的代碼,這,讓它變得簡單。
按照下面的步驟。
選擇要拆分的數據集→轉到數據選項卡→選擇「文本到列」→從此彈出框中選擇「分隔符」→選擇哪個分隔符將文本分隔開→選擇目標單元格 - >單擊「確定」
試試這個。
問候, 阿什溫
這將拆分成列,而不是行,此外不可能將vbCrLf定義爲分隔符。 –
您可以簡單地通過複製數據(將數據分離爲多列後)向@ Ashwin的解決方案中添加另一個步驟,右鍵單擊第一個單元格下方的單元格,選擇選擇性粘貼,然後選擇轉置。但是,如果工作簿「充滿細胞」(如上所述),這不是最好的解決方案。 VBA更好。 – Brian
如果您選擇單元格,運行宏,你會得到你想要的東西就這樣在下一列:
Option Explicit
Public Sub selection_into_rows()
Dim k As Variant
Dim l_counter As Long
k = Split(Selection, Chr(10))
For l_counter = LBound(k) To UBound(k)
Cells(l_counter + 1, Selection.Column + 1) = k(l_counter)
Next l_counter
End Sub
這隻會選擇後一排工作它(但應該讓你開始):
Option Explicit
Public Sub SelectionIntoRows()
Dim k() As String
Dim l As Long
Dim i As Long
k() = Split(Range("A1"), " ")
i = 1
For l = 0 To UBound(k)
Cells(i, 1) = k(l)
i = i + 1
Next l
End Sub
您可以使用拆分功能拆分(單元格(1,1),, 「*」),並不斷循環落筆列A(其中i = 1開始,加入1下移),出放入另一列 –
使用'VbLf'作爲分隔符而不是''''也可以使用這些子彈。 – newguy