Vba добавить лист с именем: Как добавить новый лист и присвоить имя в Excel пошаговое руководство

Содержание

Лист переименования VBA — voxt.ru

Переименование листов в Excel выполняется на панели задач под рабочими листами, двойным щелчком по ним, но в VBA мы используем метод свойств Sheets или Worksheet для переименования листа, синтаксис для переименования листа в VBA выглядит следующим образом Sheets (« Имя старого листа»).Name = «Имя нового листа».

Переименовать лист в Excel VBA

Мы все выполнили эту задачу по переименованию рабочего листа в соответствии с нашей личностью или в соответствии с нашим удобством, не так ли? Переименование — это не высшая математика, но если вы кодер VBA, то вы должны знать эту задачу переименования рабочего листа. Поскольку мы работаем с рабочими листами, используя их имена, важно знать важность имен рабочих листов в Кодирование VBAКодирование VBAКод VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи. читать далее. В этой статье мы покажем вам, как переименовать лист с помощью кода Excel VBA.

Как переименовать лист в VBA?

Изменение имени рабочего листа не требует каких-либо специальных навыков. Нам просто нужно указать, какое имя листа мы меняем, введя существующее имя листа.

Например, если мы хотим переименовать лист с именем «Лист 1», нам нужно вызвать лист по его имени, используя объект «Рабочий лист».

Worksheets(“Sheet1”)

После упоминания имени листа нам нужно выбрать свойство «Имя», чтобы переименовать имя листа.

Worksheets(“Sheet1”).Name

Теперь нам нужно установить свойство Name на имя в соответствии с нашим желанием.

Worksheets(“Sheet1”).Name = “New Name”

Таким образом, мы можем переименовать имя рабочего листа в VBAИмя рабочего листа в VBAЧтобы назвать рабочий лист, просто введите существующее имя листа и укажите, какое имя листа вы меняете. Например, если вы хотите изменить лист с именем «Продажи», вы должны использовать объект Worksheet для вызова листа по его имени. читать далее с помощью свойства Имя.

В следующих разделах статьи мы покажем вам все больше и больше примеров изменения или переименования рабочего листа.

Вы можете использовать это изображение на своем веб-сайте, в шаблонах и т. д. Пожалуйста, предоставьте нам ссылку на авторствоКак предоставить атрибуцию?Ссылка на статью должна быть гиперссылкой
Например:
Источник: Лист переименования VBA (wallstreetmojo.com)

Примеры переименования рабочих листов в Excel VBA

Ниже приведены примеры листа переименования VBA.

Вы можете скачать этот шаблон листа переименования VBA здесь — Шаблон листа переименования VBA

Пример № 1. Измените или переименуйте лист с помощью переменных VBA.

Например, посмотрите на приведенный ниже пример кода.

Код:

Sub Rename_Example1()
  Dim Ws As Worksheet
 
  Set Ws = Worksheets("Sheet1")
  Ws.Name = "New Sheet"
End Sub

В приведенном выше коде сначала я объявил переменную как Worksheet.

Dim Ws As Worksheet

Затем я установил ссылку на переменную как «Лист1», используя объект рабочих листов.

Set Ws = Worksheets("Sheet1")

Теперь переменная «Ws» содержит ссылку на рабочий лист «Лист1».

Теперь, используя переменную «Ws», я переименовал рабочий лист в «Новый лист».

Этот код изменит имя «Лист1» на «Новый лист».

Если я запущу код вручную или через горячую клавишу F5, то, опять же, мы получим Ошибка нижнего индекса вне диапазонаОшибка нижнего индекса вне диапазонаИндекс вне диапазона — это ошибка в VBA, которая возникает, когда мы пытаемся сослаться на что-то или на переменную, которых нет в коде. Например, если у нас нет переменной с именем x, но мы используем функцию msgbox для x, мы получим ошибку нижнего индекса вне диапазона.читать далее.

Причина, по которой мы получаем эту ошибку, заключается в том, что на предыдущем шаге мы уже изменили рабочий лист с именем «Лист1» на «Новый лист». Поскольку имени рабочего листа больше нет, «Лист1» недоступен, VBA выдает эту ошибку.

Пример № 2. Получить все имена рабочих листов на одном листе.

Мы можем получить все имена рабочих листов книги на одном листе. Приведенный ниже код извлечет все имена рабочих листов.

Код:

Sub Renmae_Example2()
  Dim Ws As Worksheet
  Dim LR As Long
  For Each Ws In ActiveWorkbook.Worksheets
   LR = Worksheets("Main Sheet").Cells(Rows.Count, 1).End(xlUp).Row + 1
   Cells(LR, 1).Select
   ActiveCell.Value = Ws.Name
  Next Ws
End Sub

Этот код извлечет все доступные имена рабочих листов на лист с именем «Основной лист».

Пример № 3. Установка постоянного имени для рабочего листа Excel с помощью VBA

Так как мы работаем с именами листов в кодировании, важно установить для них постоянные имена. Как мы устанавливаем для них постоянные имена?

Например, посмотрите на приведенный ниже код.

Код:

Sub Rename_Example3()
    Worksheets("Sheet1").Select
End Sub

Приведенный выше код выберет файл Sheet1.

Если ваша рабочая книга используется многими людьми, если кто-то изменил имя рабочей таблицы, мы получим ошибку Subscript Out of Range.

Чтобы избежать этого, мы можем установить для него постоянное имя. Чтобы установить постоянное имя, выполните следующие действия.

Шаг 1: Выберите лист, который нам нужно установить постоянное имя в редакторе Visual Basic.

Шаг 2: Нажмите клавишу F4, чтобы увидеть окно свойств.

Шаг 3: В разделе «Имя» свойство «Измените имя на «Новое имя».

Как видите, одно имя отображается как «Лист1», а в скобках мы видим новое имя как «Новый лист».

Теперь при кодировании мы будем использовать новое имя вместо фактического видимого имени.

Код:

Sub Rename_Example3()
    NewSheet.Select
End Sub

Теперь вернитесь в окно рабочего листа. Мы по-прежнему можем видеть имя листа только как «Лист1».

Теперь я изменю имя листа на «Продажи».

Если я запущу код с помощью клавиши F5 или вручную, он все равно выберет только лист с именем «Продажи». Поскольку мы дали ему постоянное имя, он по-прежнему будет выбирать только тот же лист.

УЗНАТЬ БОЛЬШЕ >>


Post Views: 1 238

Похожие записи

Прокрутить вверх

Макрос для копирования и переименования листов Excel

В этом примере детально описана и разобрана автоматизация копирования и переименования листов Excel с исходными кодами макросов.

Как копировать и переименовать лист Excel макросом

Представьте ситуацию: Вы готовите планы работ для сотрудников определенного отдела фирмы. Пример таблицы плана выглядит так:

Руководитель этого отдела пожелал, чтобы названия листов планов работ для каждого сотрудника содержали их имена и фамилии.

Многократное копирование листов шаблона для составления и заполнения планов работ сотрудников с переименованием, потребует много времени и сил если делать все это вручную. Поэтому напишем свой макрос, который упростит данную задачу.

Техническое Задание (ТЗ) для макроса заключается в следующем. После выделения ячеек, которые содержат названия для листов нужно скопировать лист с шаблоном для планов работ ровно столько сколько будет выделенных ячеек и ввести соответствующие названия в ярлычки.

Примечание. В программировании, как и в многих других технических сферах деятельности (например, в бизнес-планировании) – без ТЗ результат ХЗ! Автор цитаты известный бизнесмен и предприниматель Дмитрий Потапенко.

Для этого сначала откройте редактор кода макроса: «РАЗРАБОТЧИК»-«Код»-«Visual Basic» (ALT+F11):

В редакторе создайте новый модуль выбрав инструмент «Insert»-«Module» и введите в него следующий код макроса:

Sub PlanRabot()
  Dim diapaz As Range
  Dim i As Long
  Dim list As Worksheet
On Error Resume Next
Set diapaz = Application.InputBox("Пожалуйста, выделите диапазон ячеек, который содержит названия для новых листов!", Type:=8)
On Error GoTo 0
If diapaz Is Nothing Then Exit Sub
Set list = ActiveSheet
For i = 1 To diapaz. Count
list.Copy after:=ActiveSheet
ActiveSheet.Name = Left(diapaz(i), 31)
Next
End Sub

Теперь если вы хотите скопировать лист шаблона для заполнения плана работ и создать копии плана для каждого сотрудника имена с фамилиями которых будут присвоены названиям листа, то перейдите на исходный лист с шаблоном плана работ и выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Макросы»-«PlanRabot»-«Выполнить». Сразу же после запуска макроса появиться диалоговое окно:

Теперь перейдите на лист «Имена и Фамилии» и выделите в нем диапазон ячеек, которые содержат имена и фамилии сотрудников. И нажмите на кнопку ОК.

В результате чего макрос сам автоматически скопирует планы работ для каждого сотрудника и присвоит новым листам соответственные имена и фамилии.



Описание исходного кода макроса для копирования и переименования листов

В начале кода макроса вызываем диалоговое окно для выделения диапазона ячеек на рабочем листе Excel и присвоения адреса диапазона в качестве значения для поля ввода данного диалогового окна.

Перед вызовом инструкции открытия диалогового окна отключается контроль ошибок. А после создания экземпляра объекта Range в переменной diapaz, снова включается контроль ошибок. Сделано так потому, что нажатие на кнопку «Отмена» в диалоговом окне вызовет ошибку выполнения макроса. Если же отключить обработку ошибок то, когда пользователь нажмет на кнопку «Отмена», тогда просто не будут выполняться никакие инструкции макроса.

В случаи если пользователь заполнил поле ввода и нажал на кнопку «ОК», тогда в переменную list присваиваться текущий рабочий лист. После чего внутри цикла он копируется ровно столько раз, сколько было выделено ячеек.

В процессе копирования каждому новому листу присваивается имя, которое берется из значения текущей ячейки из предварительно выделенного диапазона. Текст в ячейках обрезается до 31 символов, так как максимальная длинна наименования листа не может содержать более чем 31 символ.

Если необходимо сделать так чтобы соответственные имена и фамилии сотрудников были не только на ярлычках листов, а и в значении ячейки B1 в каждом листе, тогда перед строкой конца цикла Next добавьте следующую строку кода:

ActiveSheet. Range(«B1») = diapaz(i)

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

Версия кода макроса с дополнительной строкой кода выглядит так:

Sub PlanRabot()
  Dim diapaz As Range
  Dim i As Long
  Dim list As Worksheet
On Error Resume Next
Set diapaz = Application.InputBox("Пожалуйста, выделите диапазон ячеек, который содержит названия для новых листов!", Type:=8)
On Error GoTo 0
If diapaz Is Nothing Then Exit Sub
Set list = ActiveSheet
For i = 1 To diapaz.Count
list.Copy after:=ActiveSheet
ActiveSheet.Name = Left(diapaz(i), 31)
ActiveSheet.Range("B1") = diapaz(i)
Next
End Sub

Пример вставки имен и фамилий не только в ярлычки листов, а и в их определенные пользователем ячейки:

Читайте также: Макрос для копирования листов Excel с заданным количеством копий.

Таким образом, благодаря макросу в пару кликов мышкой можно выполнить большой объем работы. В данном примере скопировано копий только для 8-ми сотрудников. Особенно ощутимую пользу приносит данный макрос при необходимости копировать большое количество листов. Ведь в некоторых фирмах количество сотрудников, заполняющих планы работы, может превышать 100 человек и более.

VBA Добавить новый лист — имя, до/после и другие примеры