Код VBA удаляет формулу из ячеек после команды копирования и вставки - PullRequest
0 голосов
/ 09 июля 2020

У меня есть следующий код, который работает так, как я и ожидал, копирует мою строку данных и вставляет в новую строку.

Затем он очищает данные из исходной строки, готовые для следующий ввод.

Единственная проблема заключается в том, что он удаляет все мои формулы, хотя я указал, какие ячейки должны быть очищены в моем коде.

Sub CopyPaste()

Range("A9:Q9").Copy

Sheets("Raw data").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues

 Range("A9:Q9").Select
    Range("Q9").Activate
    
    Selection.ClearContents
    Range("A9").Select
    Selection.ClearContents
    Range("B9").Select
    Selection.ClearContents
    Range("L9").Select
    Selection.ClearContents
    Range("M9").Select
    Selection.ClearContents
    Range("P9").Select
    ActiveWindow.ScrollColumn = 2
    Range("A9").Select
   
End Sub

Вероятно, что-то смехотворно очевидное.

Ответы [ 2 ]

2 голосов
/ 09 июля 2020

Range.Activate не то же самое, что Range.Select, но вы не должны делать ни из них; замените

Range("A9:Q9").Select
    Range("Q9").Activate
    
    Selection.ClearContents
    Range("A9").Select
    Selection.ClearContents
    Range("B9").Select
    Selection.ClearContents
    Range("L9").Select
    Selection.ClearContents
    Range("M9").Select
    Selection.ClearContents
    Range("P9").Select
    ActiveWindow.ScrollColumn = 2
    Range("A9").Select

на

   Range("Q9").ClearContents
   Range("A9").ClearContents
   Range("B9").ClearContents
   ... and so on

См. Как избежать использования Select для подробного обсуждения того, как улучшить ваш код.

0 голосов
/ 09 июля 2020

Вы говорите ему вставлять значения ... не формулы.

Попробуйте использовать xlPasteAll вместо xlPasteValues ​​

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...