Я пытался воссоздать то, что вы описываете. Я думаю, что я неправильно понимаю, что происходит.
Я составил таблицу, поместил некоторые данные под таблицу, покрасил ячейки в желтый цвет, а затем перетащил эту маленькую синюю вещь внизу справа поверх моих желтых данных, чтобы включить их в таблицу. Для меня это сохраняет форматирование.
Единственное, о чем я могу думать, это то, что вы вручную применили некоторую форму заполнения к таблице? Вы можете изменить стиль таблицы и форматирование. Если вы хотите сохранить свою таблицу, единственное, о чем я могу думать, это сохранить индекс цвета важного диапазона перед расширением таблицы и затем переформатировать этот диапазон после того, как вы расширили его. Это можно сделать несколькими способами, но так как мы уже находимся в VBA, как насчет этого?
'I don't know how to Dim this in one line, sorry
Dim ColorIndexArray()
ReDim ColorIndexArray(ThisWorkbook.Sheets("FLF").Cells(ThisWorkbook.Sheets("FLF").Rows.Count, "A").End(xlUp).Row)
For i = 1 To ThisWorkbook.Sheets("FLF").Cells(ThisWorkbook.Sheets("FLF").Rows.Count, "A").End(xlUp).Row
ColorIndexArray(i) = ThisWorkbook.Sheets("FLF").Range("A" & i).Interior.ColorIndex
Next
'Do your stuff
For i = 1 To ThisWorkbook.Sheets("FLF").Cells(ThisWorkbook.Sheets("FLF").Rows.Count, "A").End(xlUp).Row
ThisWorkbook.Sheets("FLF").Range("A" & i).Interior.ColorIndex = ColorIndexArray(i)
Next
Редактировать: я попытался загрузить все индексы в массив сразу и потерпел неудачу, поэтому l oop. Кроме того, если у вас есть десятки или сотни тысяч строк, и у вас уже есть массив, вы могли бы вместо этого выполнять его вычисления, чтобы ускорить процесс? Но если это всего лишь пара строк, это не имеет значения.