Скопировать форматирование в макрос - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть рабочая книга, в которой формат рабочей книги регулярно меняется, однако один раз (может быть, еженедельно или ежемесячно), а затем, пока он не будет изменен, макрос должен повторить этот формат.Изменение VBA для учета нового форматирования каждый раз занимает очень много времени.Можно ли отформатировать рабочую книгу, а затем легко скопировать форматирование в VBA (после того, как это не похоже на запись макроса) для использования в будущем?

В прошлом я использовал скрытый лист в рабочей книге, гдемакрос запускается, и я по сути копирую / вставляю его в лист, с которым я работаю.Это работает, но имеет недостаток при внесении изменений, мне сначала нужно скопировать данные на лист «шаблона», чтобы убедиться, что все правильно выровнено с новыми данными.

Возможно, какой-то макрос, который перебирает все ячейкидиапазон и выводит в ближайшее окно код VBA, необходимый для воссоздания форматирования?

В принципе, любые идеи помогут:)

1 Ответ

0 голосов
/ 02 апреля 2019

Существует так много параметров форматирования, что простое их сохранение в виде отдельных параметров займет гораздо больше места, чем просто дубликаты шаблонов. Просто запустите первый код для обновления вашего шаблона, а второй скопируйте его обратно:

  option Explicit
  Const TemplatesheetName = "mytemplate"

  Sub CopyFormatting
  dim ws as worksheet
   dim source as worksheet
  set source = activesheet
  for each ws in worksheets
      if ws.name = templatesheetname then
         exit for
      end if
  next ws
  if ws is nothing then 
      set ws = worksheets.add
      ws.name = templatesheetname
  end if
  ws.usedrange.clearformats
  source.usedrange.copy
  ws.range("a1").pastespecial xlpasteformats
  ws.visible = xlveryhidden
  end sub

  Sub BringBackFormats
  dim ws as worksheet
  for each ws in worksheets
      if ws.name = templatesheetname then
         exit for
      end if
  next ws
  if ws is nothing then 
       msgbox "No template found",vbokonly,"Unabl;e to run"
  else
      ws.cells.copy
      activesheet.range("a1").pastespecial xlpasteformats
 end if
 exit sub

(написано на моем телефоне, не могу проверить код, возможны опечатки)

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