我对VBA比较陌生,我正在尝试将数据从一个工作簿移动到另一个工作簿。具体来说,我正在尝试从第一个工作簿中移动行元素,可以使用我拥有的代码选择行元素,并以特定的方式将其移动到Book 1。我当前的目标是从所选文件的第3行移动元素,并将该行的每个单元格沿C列向下复制358次,然后移动到下一个单元格在行中复制358次。该行包含62个元素,每个元素都必须沿列向下复制358次。该行从第2列开始。
我使用的代码是:
Dim SelectedBook As Workbook
Dim lastRow As String
Dim i As Long
Dim j As Long
Dim n As Long
i = 1
j = 1
n = 2
FileToOpen = Application.GetOpenFilename(Filefilter:="Excel Files (*.xls*), *.xls*", Title:="Select FIles")
Do While n <= 62
Do While j <= 358
Set OpenBook = Application.Workbooks.Open(FileToOpen)
Cells(3, n).Select
Selection.Copy
Windows("Book1").Activate
lastRow = ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row + 1
Range("C" & lastRow).Select
Selection.PasteSpecial
ActiveSheet.Paste
j = j + 1
Loop
j = 1
n = n + 1
Loop
End Sub
复制发生了,但是因为它是一个单元一个单元地发生的,所以由于有太多的单元和重复,它需要永远的时间。有什么方法可以加速它,使它运行得更快吗?任何帮助都将不胜感激,提前感谢!
2条答案
按热度按时间c0vxltue1#
重复转置标头
dwb
(和dws
)而不是(激活)Windows("Book1")
。zxlwwiss2#
下面是一些注解代码,可以帮助您理解如何编写所需的内容: