Excel 2010:
Этот вопрос относится конкретно к использованию PasteSpecial с Условное форматирование .
Обзор: У меня есть строка шаблона, сохраненная на другом листе.Эта строка содержит примерно 350 столбцов и многочисленные форматы, формулы и условное форматирование.
Данные загружаются из SQL Server и содержат N строк - обычно от 400 до 15000.
Выполнение:
Я копирую строку шаблона и вставляю требуемые строки чисел:
AryVariant = rst_ADODB.GetRows
lRecordCount = UBound(AryVariant, 2) + 1
Templates.Range("TEMPLATE_ROW").Copy
sheet1.Range(sheet1.Range("Range_Start").Offset(1, 0), sheet1.Range("Range_Start").Offset(lRecordCount, 0)).EntireRow.Insert Shift:=xlDown
Копирование с другого листа, подобного этому, в диапазон приводит к путанице формул и условному форматированию, ноХорошо копирует форматы ячеек, поэтому я возвращаюсь через диапазон, чтобы обновить формулы и условное форматирование:
Templates.Range("TEMPLATE_ROW").Copy
sheet1.Range(sheet1.Range("Range_Start").Offset(1, 0), sheet1.Range("Range_Start").Offset(lRecordCount, 0)).EntireRow.PasteSpecial xlPasteFormats
Проблема:
Пока это работает для формул, он объединяет строки в условном форматировании в части «Применяется к», оставляя формулу в правиле, ссылаясь на верхнюю строку в диапазоне.Пример (не знаю, как показать эту часть, поскольку я не могу загрузить изображения):
Формула:"= $ FB18"
Формат: Какой-то формат здесь
Применяется к:"= $ D $ 18: $ M $ 11436, $ O $ 18: $ AC $ 11436"
Желаемый результат:
Я хочу, чтобы каждая строка была автономной, поэтому:
Формула:"= $ FB18"
Формат: Некоторые форматы здесь
Относится к:"= $ D $ 18:$ M $ 18, $ O $ 18: $ AC $ 18 "
Формула: " = $ FB19 "
Формат: Некоторые форматыздесь
Применяется к:"= $ D $ 19: $ M $ 19, $ O $ 19: $ AC $ 19"
Обходной путь:
В настоящее время я применяю обход за строкой PasteSpecial в качестве обходного пути:
For r = 0 To UBound(AryVariant, 2)
Templates.Range("TEMPLATE_ROW").Copy
sheet1.Range("sheet1_Dataset").Offset(r + 1, 0).EntireRow.PasteSpecial xlPasteFormats
Next r
Хотя это работает, это ужасно медленно с большими наборами данных.
Наконец, вопрос:
Есть ли способ получитьжелаемый результат при применении форматов к диапазону в целом?