Программное копирование всех имен диапазонов в Excel

Сводка

В Microsoft Office Excel можно создать макрос Microsoft Visual Basic для приложений (VBA), который можно использовать для копирования всех имен диапазонов из активной книги в другую книгу.

Дополнительная информация

Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Данное положение включает, но не ограничивается этим, подразумеваемые гарантии товарной пригодности или соответствия отдельной задаче. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Инженеры службы поддержки Майкрософт могут объяснить функциональность отдельной процедуры. обязаны изменять примеры для реализации дополнительных возможностей или удовлетворения требований конкретных пользователей.

Чтобы создать и использовать макрос для копирования всех имен диапазонов из активной книги в другую книгу, выполните действия, описанные в следующем примере:

  1. Запустите Excel, а затем в новой книге щелкните ячейку A1.

  2. Выполните одно из следующих действий:

    • В Microsoft Office Excel 2007 перейдите на вкладку Формулы , а затем щелкните Определить имя в группе Определенные имена .
    • В Microsoft Office Excel 2003 в и более ранних версиях Microsoft Excel наведите указатель мыши на имя в меню Вставка , а затем выберите команду Определить.
  3. В диалоговом окне Определение имен в книге введите Range1 и нажмите кнопку ОК.

  4. Выберите ячейку B1.

  5. Выполните одно из следующих действий:

    • В Excel 2007 перейдите на вкладку Формулы , а затем щелкните Определить имя в группе Определенные имена .
    • В Excel 2003 и более ранних версиях Excel наведите указатель мыши на имя в меню Вставка и выберите команду Определить.
  6. В диалоговом окне Определение имен в поле Имена в книге введите Range2 и нажмите кнопку ОК.

  7. Нажмите клавиши ALT+F11, чтобы запустить редактор Visual Basic.

  8. В меню Вставка выберите пункт Модуль.

  9. На листе модуля введите следующий код:

    Sub Copy_All_Defined_Names()
       ' Loop through all of the defined names in the active
       ' workbook.
         For Each x In ActiveWorkbook.Names
          ' Add each defined name from the active workbook to
          ' the target workbook ("Book2.xls" or "Book2.xlsm").
          ' "x.value" refers to the cell references the
          ' defined name points to.
          Workbooks("Book2.xls").Names.Add Name:=x.Name, _
             RefersTo:=x.Value
       Next x
    End Sub
    
  10. Нажмите клавиши ALT+F11, чтобы вернуться в Excel.

  11. Выполните одно из следующих действий:

    • В Excel 2007 нажмите кнопку Microsoft Office, наведите указатель мыши на пункт Сохранить как, щелкните Excel Macro-Enabled книга, а затем сохраните книгу как Book1.xlsm.
    • В Excel 2003 и более ранних версиях Excel в меню Файл нажмите кнопку Сохранить, а затем сохраните книгу как Book1.xls.
  12. Выполните одно из следующих действий:

    • В Excel 2007 нажмите кнопку Microsoft Office, нажмите кнопку Создать, Пустая книга, а затем — Создать.
    • В Excel 2003 нажмите кнопку Создать в меню Файл , а затем выберите пункт Пустая книга в области задач Новая книга .
    • В Excel 2002 и более ранних версиях Excel в меню Файл нажмите кнопку Создать, выберите Книга, а затем нажмите кнопку ОК.
  13. Выполните одно из следующих действий:

    • В Excel 2007 нажмите кнопку Microsoft Office, наведите указатель мыши на пункт Сохранить как, выберите Excel Macro-Enabled книга, а затем сохраните книгу как Book2.xlsm.
    • В Excel 2003 и более ранних версиях Excel в меню Файл выберите команду Сохранить как, а затем сохраните книгу как Book2.xls.
  14. Переключитесь на Book1.

    Примечание.

    Чтобы увидеть кнопку Book1, может потребоваться свернуть или восстановить Book2.

  15. Выполните одно из следующих действий:

    • В Excel 2007 откройте вкладку Разработчик и выберите пункт Макросы.

      Примечание.

      Если вкладка Разработчик не отображается, нажмите кнопку Microsoft Office, выберите параметры Excel, выберите пункт Популярные, выберите вкладку Показать разработчик в поле Лента проверка и нажмите кнопку ОК.

    • В Excel 2003 и более ранних версиях Excel наведите указатель мыши на пункт Макрос в меню Сервис , а затем выберите пункт Макросы.

  16. В списке Имя макроса щелкните Copy_All_Defined_Names и нажмите кнопку Выполнить.

  17. Переключитесь на Book2 и обратите внимание, что ячейка A1 называется Range1, а ячейка B1 — Range2.