Форматирование не копируется при использовании PasteSpecial - PullRequest
0 голосов
/ 25 января 2019

У меня есть лист Excel, в котором есть много правил условного форматирования.Когда я делаю PasteSpecial на другой лист, все форматирование исчезает.Это почему?Мне нужно соблюдать все правила, к сожалению.

Я пробовал с xlPasteFormats, xlPasteAll и т. Д., Но затем Excel зависает и зависает.

Sheets("Data").Activate
Range("A1:H12").Select
Selection.Copy
Sheets("Output").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Спасибо за ваши ответы и просмотр моих вопросов.

В итоге я использовал

Вставить: = xlPasteValues ​​

Вставить: = xlPasteFormats

Этоскопировал форматирование.

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

0 голосов
/ 25 января 2019

Вы можете просто сделать обычное копирование / вставку

или аргумент в PasteSpecial:

Paste:=xlPasteAllMergingConditionalFormats

И если вы будете искать SO, вы найдете некоторую информацию о том, почему вам следует избегать использования Select и Activate. Используя обычную операцию копирования / вставки, ваш макрос можно переписать в виде одной строки:

Sheets("Data").Range("A1:H12").Copy Sheets("Output").Range("A1")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...