Скопируйте ячейку и вставьте в первую пустую строку в диапазоне ячеек

#excel #vba

#excel #vba

Вопрос:

Я хочу скопировать ячейку с одного листа и вставить значение в первую пустую ячейку в диапазоне ячеек на другом листе.

Я нашел некоторый код, который почти работает, но он вставляет форматирование и формулу.

 Sub dural()
    Dim r1 As Range, r2 As Range
    Set r1 = Sheets("GHIN").Range("D151")
    Set r2 = Sheets("Monthly").Range("I56").End(xlUp).Offset(1, 0)
    r1.Copy r2
End Sub
  

Это работает, за исключением того, что я хочу, чтобы он вставлял только специальные значения.

Комментарии:

1. измените r1.Copy r2 на r2 = r1

2. Спасибо! Это сработало отлично!

Ответ №1:

Sheets("Monthly").Range("I56").End(xlUp).Offset(1, 0) = Sheets("GHIN").Range("D151").Value

Комментарии:

1. добавьте контекст. (Из обзора).

Ответ №2:

Попробуйте следующий код.

 Sub dural()
    Dim r1 As Range, r2 As Range
    Set r1 = Sheets("GHIN").Range("D151")
    Set r2 = Sheets("Monthly").Range("I56").End(xlUp).Offset(1, 0)

    '//Copy r1 (cell format, value...)
    r1.Copy

    '//Paste special in the desired cell. You can add/change parameters if you want
    r2.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub