Копирование и вставка содержимого ячейки из одной книги в другую теряет цветовое форматирование

2

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

У меня есть две рабочие тетради:

  1. рабочая книга (TLC Assess 4 Findings) с научными данными клиента
  2. некоторые данные из первой рабочей книги отображаются в более удобной для пользователя форме. Данные имеют три цвета: черный = нормальный, красный = выше диапазона и синий = в пределах диапазона.

У меня есть макрос, назначенный кнопке во второй книге, которая извлекает данные из первой книги. Все это прекрасно работает, копируя данные, за исключением того, что оно не копирует цвет, связанный с данными.

Макрос в основном:

  1. Введите первую ячейку в Workbook 2 с этой формулой:
    ='[TLC Assess 4 Findings.xls]Report'!$E$9
  2. Перейдите к следующей ячейке и сделайте то же самое для всех ячеек в разделе, который нужно скопировать.
  3. Конец Макро.

Нажмите кнопку все данные приходят правильно, но цвет нет. Это либо черный, либо какой-либо другой цвет, который ранее использовался в этой ячейке в книге 2.

Я также попробовал Copy и Paste Special с тем же результатом. Я также попробовал Художник формата.

Как мне скопировать данные вместе с цветовым форматом в моем макросе?

Синди Рейнольдс
источник
так вы вводите формулу, ссылающуюся на исходные ячейки, а не на фактический контент?
datatoo
Две книги имеют одинаковую палитру?
вариант

Ответы:

1

Я не уверен, как выглядит ваш код или в Workbook 1 есть какое-либо условное форматирование, которое не копируется должным образом; но вот один из способов «скопировать» формат ячейки в одной рабочей книге в ячейку в другой рабочей книге (при условии, что обе рабочие книги открыты):

Workbooks("SOURCE.xls").Sheets("SHEETNAME").Range("A1").Interior.Color = _
Workbooks("DESTINATION.xls").Sheets("SHEETNAME").Range("A1").Interior.Color

Для цветов шрифта:

Workbooks("SOURCE.xls").Sheets("SHEETNAME").Range("A1").Font.Color = _
Workbooks("DESTINATION.xls").Sheets("SHEETNAME").Range("A1").Font.Color

Замените имена файлов, имена листов и значения диапазонов, чтобы они соответствовали вашим файлам.

Ellesa
источник