3

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

Правило:

=MOD(ROW(),2)=0

Относится к:

=$1:$1048576

Действие:

Turn Green

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

8 ответов8

3

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

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

Там нет отличного способа обойти это. Я рекомендую сделать Copy+Paste Values, затем удалить содержимое оригинальных ячеек. Это оставит все форматирование без изменений, но переместит содержимое ячейки успешно. Это немного громоздко, но другой вариант - повторять условное форматирование каждый раз, когда вы вырезаете и вставляете. Вы решаете, какая работа меньше.

1

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

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

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

0

Я нашел новый способ сделать это!

Вы блокируете ячейки, которые условно отформатированы. Когда вы вырезаете и вставляете, условное форматирование остается прежним!

-1

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

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

-1

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

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

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

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

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

-1

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

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

-2

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .