/ / Przenieś tekst do kolumny w programie Excel ze skryptem VB - Excel, VBscript, Kopiuj, Arkusz kalkulacyjny, Wklej

Przenieś tekst do kolumny w programie Excel za pomocą skryptu VB - excel, vbscript, kopia, arkusz kalkulacyjny, wklej

Mam duży arkusz kalkulacyjny Excel z rekordami. Każdy rekord ma 12 wierszy. Potrzebuję ich przenieść do kolumn. Co dwanaście wierszy należy skopiować do tej samej kolumny pasującej. Każdy wiersz będzie własną kolumną. Potrzebuję skryptu, aby otworzyć skoroszyt, wykonać zadanie, a następnie zapisać skoroszyt z nowym układem.

Arkusz kalkulacyjny jest bardzo duży, więc potrzebujęskrypt do zapętlenia całej kartki. Na końcu skryptu chcę, aby pierwsze dwanaście wierszy było 1 rekordem rozłożonym na 12 kolumnach. Oto, co mam do tej pory:

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

Odpowiedzi:

0 dla odpowiedzi № 1

Operacja, której szukasz, jest wywoływana "transponować". W Excelu jest zaimplementowany jako parametr PasteSpecial metoda. Możesz jednak wkleić do komórek, które właśnie wyciąłeś, więc musisz wkleić je gdzie indziej:

Const xlAll  = -4104
Const xlNone = -4142

...

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

Jeśli musisz zmodyfikować oryginalny arkusz, możesz przenieść przeniesione dane z powrotem do arkusza źródłowego:

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