Я собираюсь значительно упростить свой ответ, потому что я не знаю, как вы хотите его применить, но я бы сделал это, скопировав и вставив специальные форматы.
Public Sub CopyPasteSpecialFormats()
Range("rngSrcData").Copy
Range("rngFirstCellToCopyTo").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
Добавьте приведенный выше код в модуль или метод изменения или каким-либо другим способом, которым вы хотите его вызвать.

На изображении выше, я создалименованный диапазон с именем rngSrcData в ячейках A1: E5 .Я также создал именованный диапазон в верхней левой ячейке, который представляет место назначения для специальной операции вставки.Имя этого диапазона: rngFirstCellToCopyTo , и на показанном изображении он определен в ячейке A7 .
Затем я запускаю макрос и дублирую форматирование ячеек..
Работа с именованными диапазонами может быть динамичной при условии, что вы вставляете в диапазон или обновляете именованный диапазон, если он выходит за пределы существующих границ.
В качестве альтернативы, вы можете написать несколькоVBA, чтобы найти матрицу, из которой вы хотите скопировать.Самое приятное в пункте назначения заключается в том, что вам нужно беспокоиться только о верхней левой ячейке, поэтому вам не нужно слишком задумываться об этом.
Как я уже говорил, я принял решение довольнопросто.Если вы хотите принудительно форматировать ячейку каждый раз, когда меняется лист, это тоже будет работать ...
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Application.ScreenUpdating = False
Range("rngSrcData").Copy
Range("rngFirstCellToCopyTo").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Target.Select
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
... это немного неуклюже, но делает свою работу.Вы также должны учитывать, что все ваши стандартные функции отмены будут в таком случае недействительными.Это то, что вам нужно учитывать.
Обновление отдельной ячейки также возможно, но вам потребуется больше логики, чтобы определить смещение для измененной ячейки.Кроме того, измененное событие срабатывает не для всех, а только для изменений данных ячейки, а не для формата.
Надеюсь, это поможет.