0

我有一个带有记录的大型 Excel 电子表格。每条记录为 12 行。我需要将它们移到列中。每十二行需要复制到同一列匹配起来。每行将是它自己的列。我需要脚本来打开工作簿,执行任务,然后用新的安排保存工作簿。

电子表格非常大,所以我需要让脚本一直循环通过工作表。在脚本的最后,我希望前 12 行是 1 条记录,分布在 12 列中。这是我迄今为止所拥有的:

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
4

1 回答 1

1

您正在寻找的操作称为“转置”。在 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
于 2013-08-06T21:56:17.673 回答