我有一系列范围从单独的工作簿复制到单个工作表中。目前我正在通过范围复制/粘贴来完成此操作,但有3个工作簿需要永久更新。 我想把它改成一个单一的数组,它可以从每个表中使用范围,将它附加到数组,然后将数组psate到我的表中。向数组添加变量范围vba
当前代码:
Sub UpdateTable()
Dim icounter As Long
Dim x As Workbook 'The book we're in
Dim y As Workbook 'The data from P6
Dim z As Workbook
Dim w As Workbook
Set x = ThisWorkbook
Set y = Workbooks.Open("W:\AOPS\Scheduling\Allan Dunn\P6 Output Folder\6011-Activities.xls")
Set z = Workbooks.Open("W:\AOPS\Scheduling\Allan Dunn\P6 Output Folder\6006-Activities.xls")
Set w = Workbooks.Open("W:\AOPS\Scheduling\Allan Dunn\P6 Output Folder\MCR4-Activities.xls")
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'Copy-paste the values from the P6 output sheets to the workbook
y.Sheets("TASK").Range("A3:J3000").Copy
x.Sheets("TASKS").Range("A2").PasteSpecial
Application.CutCopyMode = False
z.Sheets("TASK").Range("A3:J300").Copy
x.Sheets("TASKS").Range("A3001").PasteSpecial
Application.CutCopyMode = False
w.Sheets("TASK").Range("A3:J300").Copy
x.Sheets("TASKS").Range("A3300").PasteSpecial
Application.CutCopyMode = False
'Close the output sheets
y.Close
z.Close
w.Close
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
正如你所看到的,它有点乱,这需要很长的时间来运行(几乎整整一分钟,给定的范围的大小)。
我选择范围这么大的原因是因为我不知道每个工作表中会出现多少项(行)。列将始终保持不变,但行可能会更改。
感谢
嘿VBAstard;我尝试了你的代码,发现运行只需几分钟,但它在运行时停止了那个excel实例。我希望数组的操作速度比这更快。 它虽然工作,谢谢。 – Dunn
我正在审查和审查,并且发现我的ocde的一些小修改,加上它,使它运行得更快,只需几秒钟就可以完成!谢谢! – Dunn