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
Другие вопросы по тегам