Допустим у Вас есть книга с n-ным количеством однотипных листов. Иногда приходится проделывать в каждом листе одну и ту же операцию. Скажем, написание заголовков или изменение формулы в одной и той же ячейке шаблона. Чаще всего в таких случаях проделывается следующая операция: на одном листе меняются заголовки, затем копируются и поочередно вставляются на остальные листа. Или формула прописывается в одном листе и последовательно вставляется в каждый лист. Долго, нудно и неинтересно. Благо разработчики Microsoft предвидели подобные мучения и снабдили Excel средством для более быстрого осуществления этой задачи.

Для произведения одинаковых изменений сразу на нескольких листах все, что необходимо сделать, это выделить все необходимые листы с зажатой клавишей Shift или Ctrl(Ctrl позволяет выделить несмежные листы(скажем через один), а с Shift выделяются все листы от первого выделенного до последнего). Теперь все действия, производимые на активном(видимом) листе в точности повторяется на других выделенных листах. И что не менее важно - если прописать в активном листе формулу, то ссылки на других листах будут у каждого свои, т.е. ссылаться формулы будут на тот лист, в котором написаны(если в формуле не указаны явно ссылки на другие листы). То же самое и с копированием. Если на одном листе в ячейке А1 написано Дом, а на другом Холм, то при копировании ячейки А1 на активном листе и вставки её в ячейку А2, то на каждом листе в ячейку А2 будет скопировано своё значение - Дом и Холм соответственно.

Подобная работа с листами еще называется работой с группой листов. Определить, что на данный момент выделена группа листов(и изменения будут производиться на всех этих листах) очень просто - в заголовке Excel будет отображен текст: [Группа] [Groupe]

Как разгруппировать листы, объединенные в группу:

  • если в группу объединены не все листы книги - выделить любой лист вне группы
  • если в группе все листы книги книги - выделить любой лист, который на данный момент не является активным

Так же см.:
Как одновременно просматривать информацию с нескольких листов/диапазонов?

Loading

7 комментариев

  1. Спасибо за статью, эта же функция работает если надо все страницы подготовить под печать (например, через предварительный просмотр изменить границы или "вписать" сожердимое в одну страницу)

  2. Здравствуйте!
    А как сделать на vba?
    Делаю выборку из одной книги в другую по диапазону дат.
    Теперь надо, что бы изменения в ячейках книги с выборкой, копировались в соответствующие ячейки книги источника.
    Не получается :( Намекните куда смотреть пожалуйста.

    1. Влад, если правильно понял.
      для выделенных листов:

      dim ws as worksheet
      for each ws in activewindow.Selectedsheets
      ws.range("A1").value = "something"
      next

      для всех листов в активной книге:

      dim ws as worksheet
      for each ws in activeworkbook.worksheets
      ws.range("A1").value = "something"
      next

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

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.