Создать лист excel vba: Как добавить новый лист и присвоить имя в Excel пошаговое руководство
Содержание
Создать листы из списка
MulTEx »
20 Март 2018 Дмитрий 4707 просмотров
Данная функция является частью надстройки MulTEx
|
Вызов команды:
MulTEx -группа Ячейки/Диапазоны —Диапазоны —Создать листы из списка
С помощью данной команды можно быстро создать множество листов, сразу назначив им имена либо на основании диапазона ячеек, либо нумерацией(с указанием начальной и конечной границ). Так же можно указать, создавать листы как копии другого листа(шаблона) или после создания листов копировать в них указанную таблицу.
Для чего это может быть нужно? Например, для создания листов по определенному шаблону на каждый день месяца(от 1 до 31).
Создавая листы, использовать имена:
- из ячеек диапазона — указывается несколько ячеек, в которых записаны имена для создаваемых листов. Например, если необходимо создать листы с именами месяцев, можно в ячейки A1:A12 записать названия месяцев:
и указать эти ячейки в поле из ячеек диапазона. Если значение ячейки содержит символы, недопустимые для использования в именах листов — они будут удалены.
- в пределах указанной нумерации — указываются начальная и конечная граница диапазона. При этом конечная граница не может быть меньше начальной.
Задавая список листов следует помнить, что хоть в Excel нет точного ограничения по количеству листов в книгах, ошибка все же может возникнуть при большом количестве листов(это связано с ограничением выделяемой памяти для хранения открытой книги и в различных версиях Excel и операционной системы может различаться).
В качестве наполнения создаваемых листов использовать — здесь можно указать создавать пустые листы или в них должно быть какое-то содержимое(на основании некоего шаблона).
- Лист целиком — в этом случае каждый созданный лист будет в точности повторять выбранный лист(форматирование, формулы, имена, значения). Различаться будут только имена. В данном случае лист-шаблон должен обязательно располагаться в активной на момент выполнения команды книге.
- Диапазон ячеек — в данном случае на каждый созданный лист будут вставлены ячейки указанного диапазона.
- вставлять данные, начиная с ячейки — указывается ячейка, с которой начинать вставку Диапазона ячеек. Если не указана — будет использована ячейка A1.
- Создавать пустые листы — будут созданы пустые листы.
Создавать листы
- в текущей книге — листы будут добавлены после последнего листа активной книги.
- в новой книге — будет создана новая книга, в которой будут созданы все листы.
Расскажи друзьям, если статья оказалась полезной:
Видеоинструкции по использованию надстройки MulTEx
© 2023 Excel для всех
Войти
Переименовать лист VBA | Как переименовать таблицу Excel с помощью кода VBA?
Переименование листов в Excel выполняется с панели задач под листами, которые представлены двойным щелчком по ним, но в VBA мы используем метод свойств Sheets или Worksheet для переименования листа, синтаксис для переименования листа в VBA следующий: Sheets (« Старое имя листа »). Имя =« Имя нового листа ».
Мы все выполнили эту задачу по переименованию рабочего листа в соответствии с нашей идентичностью или в соответствии с нашим удобством, не так ли? Переименование — это не ракетная наука, которую нужно освоить, но если вы кодировщик VBA, вы должны знать эту задачу переименования рабочего листа. Поскольку мы работаем с рабочими листами, используя их имена, важно знать важность имен рабочих листов в кодировании VBA. В этой статье мы покажем вам, как переименовать лист, используя кодировку Excel VBA.
Как переименовать лист в VBA?
Для изменения названия рабочего листа не требуется никаких специальных навыков. Нам просто нужно указать, какое имя листа мы меняем, введя имя существующего листа.
Например, если мы хотим переименовать лист с именем «Лист 1», нам нужно вызвать лист по его имени, используя объект Worksheet.
Рабочие листы («Лист1»)
После упоминания имени листа нам нужно выбрать свойство «Имя», чтобы переименовать имя листа.
Рабочие листы («Лист1»). Имя
Теперь нам нужно установить свойство Name на имя по нашему желанию.
Рабочие листы («Лист1»). Name = «Новое имя»
Таким образом, мы можем переименовать имя рабочего листа в VBA, используя свойство Name.
В следующих разделах статьи мы покажем вам все больше и больше примеров изменения или переименования рабочего листа.
Примеры переименования листов в Excel VBA
Ниже приведены примеры листа переименования VBA.
Вы можете скачать этот шаблон VBA Rename Sheet здесь — VBA Rename Sheet Template
Пример №1 — Изменить или переименовать лист с помощью переменных VBA.
В качестве примера посмотрите приведенный ниже пример кода.
Код:
Sub Rename_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sheet1") Ws.Name = "New Sheet" End Sub
Сначала в приведенном выше коде я объявил переменную как Рабочий лист.
Dim Ws как рабочий лист
Затем я установил ссылку на переменную как «Sheet1», используя объект рабочих листов.
Установить Ws = Рабочие листы ("Лист1")
Теперь переменная «Ws» содержит ссылку на рабочий лист «Sheet1».
Теперь, используя переменную «Ws», я переименовал рабочий лист в «Новый лист».
Этот код изменит имя «Sheet1» на «New Sheet».
Если я запустил код вручную или с помощью сочетания клавиш F5, мы снова получим ошибку Subscript Out of Range.
Причина, по которой мы получаем эту ошибку, заключается в том, что на самом предыдущем шаге мы уже изменили рабочий лист с именем «Sheet1» на «New Sheet». Поскольку имя листа «Sheet1» больше не существует, VBA выдает эту ошибку.
Пример №2 — Получить все имена рабочих листов на одном листе.
Мы можем получить все имена рабочих листов книги на одном листе. Приведенный ниже код извлечет все имена рабочих листов.
Код:
Sub Renmae_Example2 () Dim Ws As Worksheet Dim LR As Long For each Ws в ActiveWorkbook.Worksheets LR = Worksheets («Основной лист»). 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"). Выберите End Sub
Приведенный выше код выберет Sheet1.
Если ваша книга используется многими людьми, если кто-то изменил имя рабочего листа, мы получим ошибку «Нижний индекс вне диапазона».
Чтобы избежать этого, мы можем присвоить ему постоянное имя. Чтобы установить постоянное имя, выполните следующие действия.
Шаг 1. Выберите лист, которому нужно присвоить постоянное имя в редакторе Visual Basic.
Шаг 2: Нажмите клавишу F4, чтобы увидеть окно свойств.
Шаг 3: В разделе «Имя» выберите «Свойство». Измените имя на «Новое имя».
As you can see one name is showing as “Sheet1” and in a bracket, we can see the new name as “New Sheet”.
Now in coding, we will use the new name instead of an actual visible name.
Code:
Sub Rename_Example3() NewSheet.Select End Sub
Now come back to the worksheet window, we can still see the sheet name as “Sheet1” only.
Now I will change the sheet name to “Sales”.
If I run the code using the F5 key or manually then it will still select the sheet named “Sales” only. Since we had given a permanent name to it, still it will select the same sheet only.
8 Примеры добавления листа в Excel с помощью кода VBA
Новый лист можно добавить с помощью метода Add объекта Sheets. Например,
Sheets. Add
Этот код добавит лист перед активным листом в вашей книге.
Как добавить лист Excel с помощью кода VBA
- Используя VBA, вы можете легко добавить один или несколько листов Excel.
- Лист можно добавить в начале, в конце или между ними, т. е. в указанной позиции
- Вы также можете назвать вновь добавленный лист
- Добавленный лист становится активным
Какой метод используется для создания нового листа в VBA
Новый лист можно добавить с помощью метода Add объекта Sheets. Например,
Sheets.Add
Этот код добавит лист перед активным листом в вашей книге.
Рассмотрим несколько примеров с макросами и изображениями для добавления листов.
Пример добавления листа перед активным листом
В первом примере мы добавим лист перед существующим активным листом. Для идеи, это наш образец листа, прежде чем мы выполним код:
Выполните следующие шаги для добавления нового листа перед активным листом:
Шаг 1:
Перейдите на вкладку « РАЗРАБОТЧИК ». и найдите/щелкните «Visual Basic», как показано ниже:
Должен открыться редактор кода VBA.
Или нажмите сочетание клавиш « Alt + F11 ».
Шаг 2:
В редакторе VB «Вставить» новый модуль:
Напишите эту строку кода в модуле, чтобы добавить новый лист:
Sub Add_Sheet()
Sheets.Add
End Sub |
Шаг 3:
Сохраните модуль (может потребоваться указать имя модуля)
Шаг 4:
Запустите код, нажав F5 или из этого меню:
Это должно добавить новый лист перед «Листом1», так как это был наш активный лист:
Добавление листа с указанным именем
Чтобы назвать вновь добавленный лист, используйте имя следующим образом:
Sheets. Add.Name = «Имя нового листа»
В приведенном ниже примере мы добавим новый лист в нашу рабочую книгу с именем «Информация о продукте».
См. код VBA и вывод ниже:
Sub Add_Sheet()
Sheets.Add.Name = «Информация о продукте»
End Sub |
Result Workbook:
Поскольку «Лист3» стал активным листом, перед ним был добавлен лист «Информация о продукте».
Пример добавления именованного рабочего листа в конец Рабочей тетради
Хотя не существует простого способа добавить рабочий лист в конец активной рабочей книги, вы можете сделать это, получив общее количество существующих листов, а затем добавив новый лист в конце.
Пример ниже показывает, как это сделать.
1 2 3 4 5 6 7 8 9 9 0003 10 11 12 13 | Sub Add_Sheet_End()
‘Переменная для получения максимального количества листов
‘Добавление после максимального листа
Листов. Добавить после: = Листы (Max_sheet)
End Sub |
Добавление пользовательского имени в конец
Чтобы добавить в конец пользовательское имя, вы можете использовать этот код и заменить имя на свое. Мы добавим лист «Информация о продукте» в конце.
Код VBA:
1 2 3 4 5 6 7 8 9 9 0003 10 11 12 13 | Sub Add_Sheet_End()
‘Переменная для получения максимального количества листов
‘Добавление в конце с произвольным именем
Sheets.Add(After:=Sheets(Max_sheet)).Name = «Информация о продукте»
End Sub |
Результат:
Добавить лист имен в начале
Создание листа в качестве первого листа, когда любой из листов активен, также прост:
9000 9 Код:
Sub Add_Sheet_Start()
Sheets. Add(Before:=Sheets(1)).Name = «Sales Information»
End Sub |
Вывод:
Добавление рабочего листа после определенного листа
В следующем примере показано добавление нового рабочего листа после указанного рабочего листа. Предположим, у нас есть следующие образцы листов рабочей книги:
Мы хотим добавить новый лист после «Лист10».
Выполните этот код:
Sub Add_Sheet()
Sheets.Add After:= Sheets(«Sheet10»)
End Sub |
Результат:
Как видите, «Лист11» добавляется после «Лист10».
И назвать лист как хотите для указанной позиции:
Sub Add_Sheet_Name()
Sheets.Add(After:=Sheets(«Sheet10»)).Name = «Sales Sheet»
End Sub |
Результат:
Как видите, мы указали имя «Лист продаж», и оно добавлено после Листа 10 в нашу рабочую книгу.
Добавление перед указанным листом пример
Просто замените « После » на « Перед » в приведенном выше примере, и новый лист с указанным именем будет добавлен раньше. Смотрите код и вывод:
Код VBA:
Sub Add_Sheet_Name()
Sheets.Add(Before:=Sheets(«Sheet10»)).Name = «Лист сотрудников»
End Sub |
Результат:
Добавление нескольких листов после указанной позиции
Несколько листов также можно добавить с помощью одной строки кода в VBA.
Просто укажите количество и позицию , как показано в примере ниже.
Мы добавляем 3 листа после «Sheet13» в нашу рабочую книгу:
Код VBA:
Sub Add_Sheet_multiple()
Sheets. Add After:=Sheets(«Sheet13»), Count:=3
End Sub |
Результат:
vba — Добавление листов в конец книги в Excel (обычный метод не работает?)
спросил
Изменено
5 лет назад
Просмотрено
133 тыс. раз
Это код VBA, который я использую, чтобы попытаться добавить новый лист на последнее место в книге
mainWB.Sheets.Add(After:=Sheets(Sheets.Count)).Name = new_sheet_name
Я видел это в похожем вопросе на этом сайте. Это не работает.
Я делаю это в цикле, и каждый лист добавляется на вторую позицию в листах. Есть 2 листа, которые постоянно там (информация и сводка), и затем я добавляю еще 5, называемых «тестовыми», с 1 по 5. Я всегда получаю листы в следующем порядке:
Информация, лист5, лист4, лист3, лист2, лист1, сводка
Но я хотел/ожидал:
Информация, Сводка, лист1, лист2, лист3, лист4, лист5
(цикл создает их в ожидаемом порядке, так что проблема не в этом.)
Если я поменяю местами сводку и информационный лист до того, как начну, то когда я закончу, они окажутся в противоположных местах.
Что я делаю не так?
- vba
- excel
Попробуйте это
mainWB.Sheets.Add(After:=mainWB.Sheets(mainWB.Sheets.Count)).Name = new_sheet_name
6
mainWB.Sheets.Add(After:=Sheets(Sheets.Count)).Name = new_sheet_name
, вероятно, должно быть
mainWB.Sheets.Add(After:=mainWB.Sheets(mainWB.Sheets.Count)).Name = new_sheet_name
1
Распространенная ошибка:
mainWB.Sheets.Add(After:=Sheets.Count)
что приводит к Ошибке 1004.