/ / Text mit VB Script in eine Excel-Spalte verschieben - Excel, VBScript, Kopieren, Tabellenkalkulieren, Einfügen

Verschieben von Text in eine Excel-Spalte mit VB Script - Excel, VBScript, Kopieren, Tabellenkalkulieren, Einfügen

Ich habe eine große Excel-Tabelle mit Aufzeichnungen. Jeder Datensatz besteht aus 12 Zeilen. Ich muss sie in Spalten verschieben. Jeweils zwölf Zeilen müssen in dieselbe Spalte kopiert werden, die übereinstimmt. Jede Zeile wird eine eigene Spalte sein. Ich benötige das Skript, um die Arbeitsmappe zu öffnen, die Aufgabe auszuführen und die Arbeitsmappe mit der neuen Anordnung zu speichern.

Die Tabelle ist sehr groß, deshalb brauche ich für dieSkript, um den ganzen Weg durch das Blatt zu schleifen. Am Ende des Skripts möchte ich, dass die ersten zwölf Zeilen 1 Datensatz sind, der auf 12 Spalten verteilt ist. Das habe ich bisher:

Dim xlApp
Dim xlSheet1
Dim xlBook1

Set xlApp = CreateObject("Excel.Application")
xlApp.Workbooks.Open "C:usersam2878desktopExchange Audit Log.xls"

Set xlBook1 = xlApp.Workbooks("Exchange Audit Log.xls")
Set xlSheet1 + xlBook1.Worksheet("Exchange Audit Log")

xlApp.Application.Visible = True

xlSheet1.Range("A1:A12").Cut

xlSheet1.Range("A1:L1").Paste

Loop

xlBook1.SaveAs "C:usersam2878desktopExchange Audit Log.xls", xlNormal, "","",False,False
xlApp.Quit

Antworten:

0 für die Antwort № 1

Die Operation, nach der Sie suchen, wird aufgerufen "transponieren". In Excel ist es als Parameter der implementiert PasteSpecial Methode. Sie können nicht in Zellen einfügen, die Sie gerade ausgeschnitten haben. Sie müssen sie also woanders einfügen:

Const xlAll  = -4104
Const xlNone = -4142

...

xlSheet1.Range("A1:A12").Cut
xlBook1.Sheets(2).PasteSpecial xlAll, xlNone, , True

Wenn Sie das Originalblatt ändern müssen, können Sie die transponierten Daten zurück in das Quellblatt verschieben:

xlBook1.Sheets(2).Range("A1:L1").Cut
xlSheet1.Activate
xlApp.ActiveSheet.Range("A1").Select
xlApp.ActiveSheet.Paste