Двойные вложенные операторы With
не нужны.Вы можете использовать только 1 With...End With
оператор за раз (ну, на самом деле, вы можете квалифицировать новый With
оператор, используя предыдущий оператор with, но в этом случае вы этого не делаете).В любом случае, это не ваша проблема.
Попробуйте посмотреть, сработает ли избегание копирования / вставки для того, что вам нужно.
Замените все это:
'Copy and Paste Data between workbooks.
'Copy
With xReport
With xReportSheet
Set rng = .Cells(2,5)
Application.CutCopyMode = False
rng.Copy
End With
End With
'Paste
With xSummary
With xSummarySheet
Set rng = .Cells(3,1)
rng.PasteSpecial Paste:=xlpasteValues
End With
End With
этимодна строка кода:
xSummarySheet.Cells(3, 1) = xReportSheet.Cells(2, 5).Value
Если ничего другого, я уверен, что ваш код по крайней мере будет работать намного быстрее.
Кроме того, не уверен, используете ли вы .Activate
или .Select
.Если да, не надо.