Mám veľkú tabuľku Excelu so záznamami. Každý záznam má 12 riadkov. Potrebujem ich presunúť do stĺpcov. Každých dvanásť riadkov sa musí skopírovať do rovnakého stĺpca. Každý riadok bude mať vlastný stĺpec. Potrebujem skript na otvorenie zošita, vykonanie úlohy a uloženie zošita s novým usporiadaním.
Tabuľka je veľmi veľká, takže potrebujemskript na slučku celú cestu cez hárok. Na konci skriptu chcem, aby prvých dvanásť riadkov bolo 1 záznam rozložený do 12 stĺpcov. Toto som doteraz urobil:
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
odpovede:
0 pre odpoveď č. 1Vyvolá sa operácia, ktorú hľadáte "Transpozícia", V Exceli je implementovaný ako parameter PasteSpecial
metóda. Do buniek, ktoré ste práve vystrihli, však nemôžete prilepiť, takže ich musíte prilepiť niekde inde:
Const xlAll = -4104
Const xlNone = -4142
...
xlSheet1.Range("A1:A12").Cut
xlBook1.Sheets(2).PasteSpecial xlAll, xlNone, , True
Ak potrebujete upraviť pôvodný hárok, môžete presunúť transponované údaje späť do zdrojového hárku:
xlBook1.Sheets(2).Range("A1:L1").Cut
xlSheet1.Activate
xlApp.ActiveSheet.Range("A1").Select
xlApp.ActiveSheet.Paste