Добрый день!
Подскажите в чем ошибка? (см. скриншот)
Ошибка 438
Object doesn't support this property or method
Вроде простая операция вставить
Потому что у объекта Range нет метода Paste. Об этом так и говорится в сообщении: Объект не поддерживает это свойство или метод.
У объекта Range есть метод PasteSpecial.
У объекта Worksheet есть метод Paste:
Dim Лист As Worksheet
Лист.Paste Destination:=Range("A1"), Link:=False
Worksheets("Лист5").Cells(12, 2).Copy
Worksheet.Paste Destination:=Worksheets("ШифрANR").Range("B275"), link:=False
Так? Но у меня снова ошибка.
Можно ли использовать .cells() вместо .range() ?
ошибка 424
Object required
выделяется 2-я строка (с Paste)
Здесь вместо Worksheet нужно указать конкретный лист, на который надо вставить:
Worksheet.Paste
Worksheets("Лист5").Cells(12, 2).Copy
Worksheets("ШифрANR").Paste Destination:=Range("B275"), link:=False
Снова ошибка во второй строке.
Может дело в том что на Листе 5 ячейка B12 объединенная ( т.е. занимает диапазон B12:U12)
А на листе ШифрANR она самостоятельная B275 (одиночная)
Может это возможно решить с помощью свойства resize?
Но у меня ничего не вышло...
Сделайте скрин ошибки.
во вложении.
разный размер ячеек откуда копируют и куда вставляют точно не мешает (писал выше)?
Я имел ввиду текст ошибки, т.е. скрин сообщения, в котором текст ошибки.
ошибка 1004
во вложении
Здесь возможно перед Range("B275") нужно указать лист Worksheets("ШифрANR"). Иначе сейчас подставляется активный лист и происходит нестыковка: копируется из листа "ШифрANR", а пытается вставить на активный лист, который не является листом "ШифрANR".
Worksheets("ШифрANR").Paste Destination:=Range("B275"), link:=False
Неа, не работает. См. скриншот.
У меня получилось другим способом. Получилось случайно :)
Sheets("Лист5").Range("B12").Resize(1, 1).Copy Sheets("ШифрANR").Range("B275")
Полный алгоритм такой:
Select Case Worksheets("Лист5").Cells(13, 2).Value
Case Is = "ANR"
Worksheets("ШифрANR").Cells(275, 2).ClearContents
Sheets("Лист5").Range("B12").Resize(1, 1).Copy Sheets("ШифрANR").Range("B275")
Case Is = "ANP"
Worksheets("ШифрANP").Cells(275, 2).ClearContents
Sheets("Лист5").Range("B12").Resize(1, 1).Copy Sheets("ШифрANP").Range("B275")
End Select
Application.CutCopyMode = False
Но все же мне интересно как правильно записать способом выше, над которым вы трудитесь ...
P.S. Видимо правда проблема в разном размере ячеек: откуда копируем (B12:U12) и куда вставляем (В275). Одна объединенная другая нет.
Я был не прав, в параметре Destination можно указать любой лист, а не обязательно тот, который указан в начале.
Если у вас всё работает, то нет смысла с этим разбираться.
Хорошо, спасибо большое Вам!