EXCEL VBA: скопировать формулу из одной рабочей книги и вставить в качестве значения в активную рабочую книгу
Sub somemodule()
Set Src = Workbooks("Abc")
Sheets("Thissheet").Select
Src.Sheets("Thatsheet").Range("P22:P35").CopyRange("Q5")
End Sub
Исходный диапазон P22:P35 - формула. Так что это копирует формулу.
Я хочу вставить только значения. Я так и сделал.
Src.Sheets("Thatsheet").Range("P22:P35").CopyRange("Q5").PasteSpecial
Это дает ошибку времени выполнения "1004"
или это,
Src.Sheets("Thatsheet").Range("P22:P35").CopyRange("Q5").PasteSpecialxlPasteValues
Выдает ошибку компиляции: Ожидаемый конец оператора.
Пожалуйста, помогите мне скопировать значения в активный лист. Спасибо.
1 ответ
Решение
Избегайте копирования / вставки. Это медленно, это утомительно, и оно того не стоит.
Dim srcRng As Range, tgtRng As Range
Set srcRng = Workbooks("Abc").Worksheets("SheetName").Range("P22:P35")
Set tgtRng = Workbooks("Tgt").Worksheets("SheetName2").Range("P22:P35")
'======================================================================
'====== MAKE SURE YOU USE CORRECT WORKBOOK/WORKSHEET NAMES ABOVE ======
'======================================================================
tgtRng.Value = srcRng.Value