У меня есть макрос, который копирует и вставляет данные из нескольких рабочих книг в одну консолидированную рабочую книгу. Макрос работал долгое время, но с тех пор начал падать Excel. Я хотел бы попробовать заменить копию и вставить что-то вроде RangeB = RangeA. Я получаю следующую ошибку:
Метод 'Range' объекта '_Worksheet' не выполнен.
Последняя строка в последнем блоке кода вызывает ошибку. Любая помощь приветствуется.
Option Explicit
Sub File_Loop_Example()
'Excel VBA code to loop through files in a user selectable folder with Excel VBA
Dim TargetFolder As String, TargetFile As String
Dim wsConsol As Worksheet
Dim CopyLastRow As Long, DestLastRow As Long
Dim TranRange As Variant
'Sets the name of the wsConsol file, if required
Set wsConsol = Workbooks("Consolidation File.xlsm").Worksheets("Raw Data")
'Opens a file dialog box for user to select a folder
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
TargetFolder = .SelectedItems(1)
Err.Clear
End With
'stops screen updating, calculations, events, and status bar updates to help code run faster
Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Application.CutCopyMode = False
'This section will loop through and open each file in the folder you selected
'and then close that file before opening the next file
TargetFile = Dir(TargetFolder & "\", vbReadOnly)
Do While TargetFile <> ""
DoEvents
On Error GoTo 0
Workbooks.Open Filename:=TargetFolder & "\" & TargetFile, UpdateLinks:=False
TranRange = Workbooks(TargetFile).Worksheets("Summary").Range("F17:F22").Value
TranRange = Application.WorksheetFunction.Transpose(TranRange)
wsConsol.Range("L" & DestLastRow & ":Q" & DestLastRow).Value = TranRange