Вам нужна копия отчета в неизмененном состоянии.Вы можете использовать скрытый лист в той же книге или лист в отдельной книге.Когда вы хотите «сбросить» форматирование до значения по умолчанию, вы должны сделать что-то вроде этого
shBackup.UsedRange.Copy
shReport.UsedRange.PasteSpecial xlPasteFormats
Есть несколько проблем с этим методом.Ширина столбцов не вставляется в форматы, поэтому, если это может изменить пользователь, вам понадобится другой способ их сохранения.Более сложной задачей может быть создание shBackup, но, надеюсь, ваш существующий код делает это очевидным.
Если пользователь может изменить UsedRange, скажем, вставив строки или столбцы в shReport, приведенный выше код не подойдеттрюк.Но я думаю, что это восходит к тому моменту, когда вы создаете резервную копию.
Основой этого является то, что Excel уже имеет инфраструктуру для хранения всех необходимых параметров.Он имеет объекты Range, объекты Font, объекты Interior и т. Д. Поэтому вместо того, чтобы катить собственную структуру отображения, используйте то, что Excel уже должен хранить все свойства.