嗨,大家好!
我有一个包含文件的目录。
每个文件都有一个工作表。
我需要将指定的行(例如G:G)从每个文件复制到一个master_file.xlsx(从我开始我的宏)。
问题之一是行非常大(约2000个值),因此我的代码会针对每次迭代抛出警告:剪贴板中的大量信息。
请帮助我尝试。
非常感谢!!!
我的代码如下:
Sub my_macros()
Dim sFileName, sNewFileName, myFile As String
sFileName = ThisWorkbook.Path & "\master_file.xlsm"
If Dir(sFileName, 16) = "" Then MsgBox "Warning", vbCritical, "Error" Exit Sub
Cells.Select
Selection.ClearContents
For i = 1 To 5
'MsgBox (i)
sNewFileName = ThisWorkbook.Path & "\file_" & i & ".xlsx"
If Dir(sNewFileName, 16) = "" Then Exit For
Application.ScreenUpdating = False
'MsgBox (sNewFileName)
Workbooks.Open sNewFileName
Range("G:G").Select
Selection.Copy
ActiveWorkbook.Close
ThisWorkbook.Activate
'Active
Worksheets("Sheet1").Columns(2).Insert Shift:=xlToRight
Application.CutCopyMode = False
'Workbooks(sNewFileName).Close SaveChanges:=False
Next i
End Sub
答案 0 :(得分:1)
切换到ThisWorkbook
&在关闭新打开的工作簿之前插入,然后在ActiveWorkbook.Close
之前简单地将剪贴板中的大数据换成较小的数据; range("A1").copy
。