我有一个包含记录的大型Excel电子表格。每条记录为12行。我需要他们搬到专栏。每12行需要复制到匹配的同一列中。每行都是它自己的列。我需要脚本打开工作簿,执行任务,然后使用新安排保存工作簿。
电子表格非常大,所以我需要让脚本一直循环到工作表。在脚本的最后,我希望前12行是分布在12列的1条记录。这就是我到目前为止所做的:
Dim xlApp
Dim xlSheet1
Dim xlBook1
Set xlApp = CreateObject("Excel.Application")
xlApp.Workbooks.Open "C:\users\am2878\desktop\Exchange 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:\users\am2878\desktop\Exchange Audit Log.xls", xlNormal, "","",False,False
xlApp.Quit
答案 0 :(得分:0)
您正在寻找的操作称为"transpose"。在Excel中,它是作为PasteSpecial
方法的参数实现的。但是,您无法粘贴到刚切出的单元格中,因此需要将其粘贴到其他位置:
Const xlAll = -4104
Const xlNone = -4142
...
xlSheet1.Range("A1:A12").Cut
xlBook1.Sheets(2).PasteSpecial xlAll, xlNone, , True
如果您需要修改原始工作表,则可以将转置数据移回源工作表:
xlBook1.Sheets(2).Range("A1:L1").Cut
xlSheet1.Activate
xlApp.ActiveSheet.Range("A1").Select
xlApp.ActiveSheet.Paste