
Ich habe nicht genug Erfahrung mit VBA, um dies zu erreichen. Wie ändere ich das folgende VBA, um Folgendes tun zu können:
Fügen Sie gestapelte Spalten in ein neues Blatt ein.
Leerzeichen verarbeiten (der Code unten erledigt dies derzeit)
3. Der Code wird für den Bereich ausgeführt, den der Benutzer aktuell ausgewählt hat. Im Idealfall kann der Benutzer auch nicht zusammenhängende Spalten auswählen.
Sub MoveAllDataToColumnA()
Dim i As Long, ws As Worksheet, rngCopy As Range, rngEnd As Range
Set ws = ActiveSheet
Do Until ws.Cells(1, 2).Value = ""
Set rngCopy = ws.Range("B2", ws.Cells(ws.Rows.Count, "B").End(xlUp))
Set rngEnd = ws.Cells(ws.Rows.Count, "A").End(xlUp).Offset(1, 0)
rngEnd.Resize(rngCopy.Rows.Count, 1).Value = rngCopy.Value
rngCopy.EntireColumn.Delete
Loop
End Sub
Antwort1
Ich würde hierfür das Power Query-Add-In verwenden, obwohl es Anforderung Nr. 3 nicht erfüllen kann. Ab Excel 2016 ist Power Query in das Datenband im Abschnitt „Abrufen und Transformieren“ integriert.
Die Schritte, die ich in der Power Query erstellen würde, wären:
Wählen Sie die Spalten „Org“ und „Länge“ aus und wählen Sie dann „Spalten entfernen“.
Wählen Sie die Spalte „Kategorie“ und wählen Sie „Spalten aufheben/Andere Spalten aufheben“.
Sie können das Ergebnis in eine neue Excel-Tabelle übermitteln.