Ich möchte einen Code in VBA schreiben, mit dem die Arrays in einer Zelle in mehrere Zeilen aufgeteilt werden. [Closed]

0

Ich versuche, Daten von einer einzelnen Zelle in mehrere Zeilen aufzuteilen, wie unten gezeigt.

[Top one is before and the bottom one is after

Ich benutze den folgenden Code:

Sub TransposeRange()

Dim rng As Range
Dim InputRng As Range, OutRng As Range
xTitleId = "Splitcell"
Set InputRng = Application.Selection.Range("A1")
Set InputRng = Application.InputBox("Range(single cell) :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Arr = VBA.Split(InputRng.Range("A1").Value, Chr(9))
OutRng.Resize(UBound(Arr) - LBound(Arr) + 1).Value = Application.Transpose(Arr)
End Sub
user850468
quelle
3
Was ist deine Frage?
DavidPostill
Wenn Sie versucht haben, ein Bild einzufügen, wird es nicht angezeigt. Was ist Ihr aktuelles Problem, was genau funktioniert nicht? Was kann der Code nicht?
Mokubai

Antworten:

1

Stellen Sie sicher, dass Ihre Eingabezelle horizontale Tabulatoren hat. Dein Code:

Sub TransposeRange()
    Dim rng As Range
    Dim InputRng As Range, OutRng As Range

    xTitleId = "Splitcell"
    Set InputRng = Application.Selection.Range("A1")
    Set InputRng = Application.InputBox("Range(single cell) :", xTitleId, InputRng.Address, Type:=8)
    Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)

    Arr = VBA.Split(InputRng.Range("A1").Value, Chr(9))
    OutRng.Resize(UBound(Arr) - LBound(Arr) + 1).Value = Application.Transpose(Arr)
End Sub

Typisches Ergebnis:

enter image description here

Gary's Student
quelle
Da haben Sie recht chr(9) ist ein Tabulator, und der Split wird nicht geteilt, wenn die Eingabe keine Tabulatoren enthält. Ich denke, das Bild des OP deutet darauf hin, dass der eigentliche Charakter, auf den sich gespalten werden soll, sein würde chr(10) oder chr(13)
Yorik