На странице (листе) есть правила условного форматирования для диапазонов.
Внутри диапазона необходимо скопировать значение одной ячейки в другую. Использую следующий код:
ActiveSheet.Range(Cells(myTxt, 1), Cells(NextRow, 1)).Copy _
ActiveSheet.Range(Cells(myTxt2, 1), Cells(NextRow2, 1))
При этом происходит добавление правила условного форматирования, а так как копирование происходит часто, то этих правил становится слишком много и это сильно тормозит работу файла.
Можно произвести копирование без "размножения" правил условного форматирования?
Способ 1. Использование метода "PasteSpecial"
Используйте метод "PasteSpecial". Он позволяет копировать не все параметры, а заданные. Может быть какой-то из этих параметров вам подойдёт.
Данный код копирует только значения:
ActiveSheet.Range(Cells(myTxt, 1), Cells(NextRow, 1)).Copy
ActiveSheet.Range(Cells(myTxt2, 1), Cells(NextRow2, 1)).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Все возможные значения вы можете посмотреть в программе "Excel". Для этого скопируйте любую ячейку, далее: вкладка "Главная" - группа "Буфер обмена" - стрелка кнопки "Вставить" - Специальная вставка... - появится диалог, в котором представлены все возможности вставки скопированного фрагмента.
Способ 2. Использование знака "равно"
Можно не использовать копирование / вставку, а можно использовать знак "равно".
В этом случае будут копироваться только значения.
Чтобы использовать знак "равно", в коде нужно указать фрагменты одного размера.
ActiveSheet.Range(Cells(myTxt2, 1), Cells(NextRow2, 1)).Value = _
ActiveSheet.Range(Cells(myTxt, 1), Cells(NextRow, 1)).Value
спасибо, помогло, понравился способ 2