В Excel, используя VBA, есть ли способ отобразить, сохранить и повторно применить форматирование? - PullRequest
0 голосов
/ 19 декабря 2010

Итак, у меня есть отчет, который я хочу убедиться, что он имеет правильный формат, независимо от того, изменен ли формат пользователем или Excel - есть ли способ «автоматически сопоставить» текущее форматированиедокумент (хорошо, если он отображается по ячейкам), сохраните его в макросе, чтобы я мог использовать его позже?

Ответы [ 2 ]

2 голосов
/ 19 декабря 2010

Вам нужна копия отчета в неизмененном состоянии.Вы можете использовать скрытый лист в той же книге или лист в отдельной книге.Когда вы хотите «сбросить» форматирование до значения по умолчанию, вы должны сделать что-то вроде этого

shBackup.UsedRange.Copy
shReport.UsedRange.PasteSpecial xlPasteFormats

Есть несколько проблем с этим методом.Ширина столбцов не вставляется в форматы, поэтому, если это может изменить пользователь, вам понадобится другой способ их сохранения.Более сложной задачей может быть создание shBackup, но, надеюсь, ваш существующий код делает это очевидным.

Если пользователь может изменить UsedRange, скажем, вставив строки или столбцы в shReport, приведенный выше код не подойдеттрюк.Но я думаю, что это восходит к тому моменту, когда вы создаете резервную копию.

Основой этого является то, что Excel уже имеет инфраструктуру для хранения всех необходимых параметров.Он имеет объекты Range, объекты Font, объекты Interior и т. Д. Поэтому вместо того, чтобы катить собственную структуру отображения, используйте то, что Excel уже должен хранить все свойства.

1 голос
/ 19 декабря 2010
  1. Создайте новый лист
  2. Выберите весь (оригинальный) лист
  3. Скопируйте его
  4. Теперь выберите А1 нового листа, созданного на шаге 1
  5. Выберите «Специальная вставка» (она находится в раскрывающемся меню справа от «Вставить»)
  6. Выберите форматы

Вы создали пустую электронную таблицу, содержащую все форматированиеиз первой таблицы.Теперь вы можете скопировать |вставьте специальные форматы из этой новой таблицы обратно в исходную таблицу по желанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...