Excel VBA – 将多行分隔成行

我有一个工作簿充满细胞,在他们中有换行符(通过ALT + ENTERinput),但现在必须再次将它们分成单独的行…所有单元格在列A.

单元格中的每一行在前面都有一个项目符号(例如“*”),这可以作为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 

不,你有arrays把每一行放到不同的单元格

没有必要为此编写代码,让简单。

按照下面的步骤。

select要拆分的数据集 – >转到数据选项卡 – >select“文本到列” – >从此popup框中select“分隔符” – >select哪个分隔符分隔文本 – >select目标单元格 – >点击“确定”

尝试这个。

问候,Ashwin

如果你select这个单元格并运行这个macros,你会在下一列得到你想要的:

 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 

这只会在select它之后才工作(但应该让你开始):

 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