Сохранить условное форматирование на вырезанную пасту

31418
durron597

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

Правило:

=MOD(ROW(),2)=0 

Относится к:

=$1:$1048576 

Действие:

Turn Green 

Это прекрасно работает ... пока я не вырезал и не вставил блок ячеек в тот или иной столбец. «Умная вырезка и вставка» в Excel разбивает все, либо путем дублирования правил, либо путем удаления разделов из региона, и мне нужно снова исправить условное форматирование. Как я могу перемещать данные без изменения правил условного форматирования?

3

8 ответов на вопрос

3
durron597

Мне удалось найти одно решение, я записал этот макрос:

Sub FomattingRules() ' ' FomattingRules Macro ' ' Keyboard Shortcut: Ctrl+e ' Cells.Select Cells.FormatConditions.Delete  Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ "=MOD(ROW(),2)=0" Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorAccent3 .TintAndShade = 0.599963377788629 End With Selection.FormatConditions(1).StopIfTrue = False End Sub 

Технически это работает, но я бы предпочел найти решение, которое не требует от меня частого нажатия клавиш Ctrl + E. Но это лучше, чем сброс правил вручную.

1
irockyoursocks

There's no great way to get around this. I recommend doing Copy+Paste Values, then deleting the contents of the original cells. This will leave all formatting unchanged, but move cell contents successfully. It's a little cumbersome, but your other option is to redo the Conditional Formatting every time you cut and paste. You decide which is less work.

Учитывая мой макрос, я думаю, что делать это меньше работы. Но спасибо за подтверждение, что нет хорошего способа сделать это! durron597 10 лет назад 0
@ durron597 Я согласен. Я просто хотел поделиться альтернативой. Мое предложение сохраняет все условные форматирования. В то время как ваш полностью работает для OP, другие могут быть недовольны тем, что макрос удаляет ВСЕ условные форматирования, а затем применяет только тот, который встроен в макрос. Просто другой. irockyoursocks 10 лет назад 0
1
Bill Kesatie

Не будучи таким талантливым программистом, как некоторые из вас, я решил решить эту проблему за два коротких шага. Во-первых, я создал еще одну строку данных, отдельную от поля данных, над которым я работаю для своего проекта. Я убедился, что эта строка данных имеет правильное условное форматирование, которое я хочу использовать для всего поля данных. Для удобства я назвал эту строку «Стандарт».

Затем я просто выбираю строку «Стандарт», выделяя все ячейки, для которых есть формула, которую я хочу скопировать. В-третьих, я использую функцию «форматировщик». Я нажимаю «рисовать формат» (в левом верхнем углу экрана под вырезать и копировать), а затем выделяю ячейки, которые я хочу, чтобы формула соответствовала формуле, сохраненной в строке «Стандарт».

Он не является автоматическим, но как только вы создаете строку «Стандарт», сохраняющую условное форматирование, которое вы хотите использовать, очень легко применить его даже к очень большому полю данных всего за два шага.

0
Chris

У меня была та же проблема, и я нашел небольшой обходной путь - возможно, пригодный для вас:

Вместо копирования и вставки : отметьте последнюю строку / столбец (или диапазон) и используйте действие Fill Down / Fill Right (Ярлык: strg+ </ strg+ >). Затем форматирование также передается.

Это также можно сделать с помощью макроса, то есть для диапазона строк:

Range("D2:D15").Select Selection.FillDown 

Вместо вырезания и вставки : выберите строку или столбец и переместите его, наведя курсор на край выделения (появится курсор со стрелками) и перетащите строку / столбец вкл. нажав SHIFT. Тогда это не классический крой и вставка, а движение. Условие форматирования должно быть сохранено.

К вашему сведению: Strg - это Ctrl в немецком макете. И ярлык для заполнения вниз / справа вправо ctrl + D / ctrl + R соответственно phuclv 8 лет назад 1
Fill down / right не является хорошей заменой cut + paste, а drag-to-move также перемещает мое условное форматирование Dan Cecile 7 лет назад 0
0
Frankie P

I found a new way to do this!

You lock the cells that are conditionally formatted. When you cut and paste, the conditional formatting stays the same!

Поздравляю с открытием. Можете ли вы отредактировать свой ответ, чтобы поделиться информацией о том, как заблокировать ячейки, которые условно отформатированы? fixer1234 9 лет назад 5
Я, скорее всего, проголосую и даже приму этот ответ, если вы отредактируете его, как описано в @ fixer1234 durron597 9 лет назад 0
0
tomOd

Это очень не элегантно, но также очень быстро, и, кажется, прекрасно работает, насколько я могу судить ...

Скопируйте условно отформатированные ячейки, вставьте их в документ Word, скопируйте ячейки из документа Word, вставьте их в целевой лист Excel.

-1
user703269

Блокировка ячеек не является решением, проверено и не работает!

Если вы вставите с помощью «Специальная вставка - без форматирования», это не нарушит уже отформатированные ячейки, и вам не придется беспокоиться о том, что пользователю нужно включить макросы, чтобы исправить форматирование. Простое исправление / обходной путь для уже развернутых решений!

Чем это отличается от ответа irockyoursocks? durron597 7 лет назад 0
Это отличается, так как я рекомендую использовать PASTE SPECIAL-No Formatting. который ирокезы не упоминают. ПОДРОБНОСТИ! user703269 7 лет назад 0
-2
Josh

Я думаю, что это вопрос того, как вы ищете ответ. Это отлично сработало для меня: https://www.extendoffice.com/documents/excel/3686-excel-remove-conditional-formatting-but-keep-format.html#a1

Похожие вопросы