Страницы: 1
RSS
VBA. Можно ли после CUT вставить только значения?
 
Здравствуйте.
Range("A1:B1").Cut Range("A2:B2")
Как вставить только значения ?
Компьютер никогда не заменит человека (©️ Hannibal Lecter)
 

Что то с Cut не получается только с Copy

Код
Range("A1:B1").Copy
Range("A2:B2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("A1:B1").ClearContents

P.S. Сергей видимо с Cut никак, т.к. метод PasteSpecial относиться к методу Copy.

Изменено: Евгений Смирнов - 21.01.2022 10:32:49
 
Евгений Смирнов, пробовал. У меня эта конструкция ошибку выдает синтаксическую.
Вообще не втыкаю, что происходит 😥
Ошибка
Компьютер никогда не заменит человека (©️ Hannibal Lecter)
 
Выглядит, как утка; ходит, как утка; крякает, как утка.
Код
Sub test()
    RangeCut Range("A1:B1"), Range("A2:B2")
End Sub

Sub RangeCut(rSource As Range, rTarget As Range)
    Dim arr As Variant
    arr = rSource
    rSource.Clear
    rTarget = arr
End Sub
 
Код
Range("A1:B1").Cut Range("A2:B2")
Range("A2:B2").Value = Range("A2:B2").Value
 
Цитата
МатросНаЗебре написал:
   RangeCut Range("A1:B1"), Range("A2:B2")
Сегодня точно не мой день
Компьютер никогда не заменит человека (©️ Hannibal Lecter)
 
Цитата
Сергей Евдокимов написал:
Как вставить только значения ?
если опираться на тему - то никак. Даже штатно, без макросов, если вырезать ячейки(Ctrl+X), то специальная вставка недоступна. Поэтому только ухищрения, которые уже показали выше. Ну и свои 5 копеек:
Код
Sub CustomCut()
    With Selection
        .Copy
        Range("E1").PasteSpecial xlPasteValues
        .Clear
        Application.CutCopyMode = False
    End With
End Sub

Msi2102,  не совсем правильный подход, потому что таким образом будут вставлены не только значения, но и форматы. А это не всегда нужно. Вы же сначала копируете ВСЕ, а потом просто убираете формулы.
Цитата
Сергей Евдокимов написал:
Сегодня точно не мой день
и не только сегодня, если так и не начать изучать мат.часть. Вы одну строку скопировали, а саму функцию RangeCut, которая идет ниже - нет...
Изменено: Дмитрий(The_Prist) Щербаков - 21.01.2022 10:37:14
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
потому что таким образом будут вставлены не только значения, но и форматы
А я так и понял, что нужно с форматом вместе вставлять  :)
 
Msi2102,  не работает.

Цитата
Дмитрий(The_Prist) Щербаков написал:
Вы одну строку скопировали, а саму функцию RangeCut, которая идет ниже - нет...
Ой-ё. Думал это два решения одной задачи ))
Изменено: Сергей Евдокимов - 21.01.2022 10:45:08
Компьютер никогда не заменит человека (©️ Hannibal Lecter)
 
Цитата
Msi2102 написал: А я так и понял
как бы...
Цитата
Сергей Евдокимов написал: вставить только значения ?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Сергей Евдокимов написал: Как вставить только значения
Тогда, вообще, какой смысл заморачиваться Cut или Copy если не нужен формат
Код
Range("A2:B2").Value = Range("A1:B1").Value
Range("A1:B1").Clear

Цитата
Сергей Евдокимов написал: Msi2102 ,  не работает.
Это вообще нонсенс, фактически не работает то, что Вы сами писали в первом сообщении. Сегодня точно не Ваш день, нужно посетить астролога.
 
Msi2102 Я сначала туфту написал. Потом редактировал
 
Цитата
Msi2102 написал: если не нужен формат
Нужен. Но тот который уже стоял. Его оставить, а значения поменять.
Компьютер никогда не заменит человека (©️ Hannibal Lecter)
 
Код
Rows(r1).Range("A1:B1")
Страницы: 1
Наверх