Ich möchte einen Code in vba schreiben, mit dem die Arrays in einer Zelle in mehrere Zeilen aufgeteilt werden

435
user850468

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

[Das oberste ist vor und das unterste ist danach

Ich verwende den unten genannten 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 
0
Was ist deine Frage? DavidPostill vor 6 Jahren 3
Wenn Sie versucht haben, ein Bild einzufügen, können wir es nicht sehen. Was ist dein aktuelles Problem, was funktioniert nicht genau? Was macht der Code nicht? Mokubai vor 6 Jahren 0

1 Antwort auf die Frage

1
Gary's Student

Stellen Sie sicher, dass Ihre Eingabezelle horizontale Registerkarten 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

Sie haben Recht damit, dass `chr (9)` eine Registerkarte ist, und die Aufteilung teilt sich nicht, wenn in der Eingabe keine Registerkarten vorhanden sind. Ich denke, das Image des OP lässt vermuten, dass der eigentliche Charakter, auf den man sich aufspaltet, `chr (10) 'oder` chr (13)' wäre Yorik vor 6 Jahren 0