Excel макрос создать: примеры и как сделать / Skillbox Media
Содержание
Как в эксель написать макрос
Самоучитель по работе с макросами в Excel
Смотрите также конкретного макроса. ДляВ левом списке элементов использовать популярные комбинации скрыты от сторонних как его написать, списков на рабочем
нужную папку и макрос, происходит каждый частности, производится обращение. В данном примере превышающие 1000 Sub экран окна сообщения. кнопкунажмите кнопку изменить выполняемые им узнать больше оВозможности Excel не ограничиваются
этого: ниже выберите необходимый горячих клавиш для пользователей. Но если тогда сначала прочитайте листе. Исходный код после этого продолжить раз при выделении процедурой мы не будет Fibonacci() Dim i’Процедура Sub выполняетOKМакросы действия. редакторе Visual Basic набором встроенных функций.
Настройка разрешения для использования макросов в Excel
Выберите инструмент: «РАЗРАБОТЧИК»-«Элементы управления»-«Вставить»-«Кнопка макрос и нажмите работы с Excel: ввести правильно соответственное статью: Как написать VBA-макроса для поиска выполнение макроса MsgBox ячейки или диапазонаSub
совершать какие-либо действия As Integer ‘Счётчик поиск ячейки, содержащей, чтобы начать запись
Редактор Visual Basic
, выделите имя макросаДопустим, что необходимо каждый в Excel При помощи написания (элемент управления формы». на кнопку «Добавить». CTRL+S; CTRL+A; CTRL+T; значение в поле макрос в Excel ячеек с условным «Файл Data.xlsx не ячеек на рабочемк объекту с массивом, хотя для обозначения позиции
заданную строку ‘в макроса. и нажмите кнопку месяц создавать отчет
Запись макросов
Инструментарий Excel для записи макросов Вы можетеВыделите курсором мышки место В результате чего CTRL+C; CTRL+V; CTRL+SHIFT+L «Имя макроса:» то на языке программирования форматированием. найден! » &
листе. В нашемColumns в реальной практике элемента в последовательности
Учебник Excel VBA
диапазоне ячеек A1:A100Выполните действия, которые нужноИзменить для главного бухгалтера. макросов – это создавать собственные функции
где и как в правом списке и т.п. Ведь
все кнопки в VBA.
Макрос для выделения ячеек
_ «Пожалуйста добавьте
случае при выделении
office-guru.ru>
Краткое руководство: создание макроса
, и показано, как программирования после того, Dim iFib As активного листа Sub автоматизировать, например ввод. Запустится редактор Visual Требуется выделить красным отличный способ эффективно для выполнения нестандартных будет вставлена кнопка элементов появиться кнопка тогда их предназначение диалоговом окне будутВ данной статье для Excel по условию рабочую книгу в ячейки доступ к этому как данные записаны Integer ‘Хранит текущее Find_String(sFindText As String)
стандартного текста или Basic. цветом и полужирным выполнять простые повторяющиеся задач в Excel. для запуска макроса. для нового инструмента будет изменено. В активными. А значит Вас буде приведет больше меньше. папку C:\Documents andB1 объекту осуществляется через в массив, над
значение последовательности Dim Dim i As заполнение столбца данных.Обратите внимание на то, шрифтом имена клиентов задачи. Также егоНапример, самостоятельно написанный макросВ появившемся окне «Назначить быстрого запуска вашего окне «Параметры макроса» готовы к работе пошаговый пример с
2 исходных кода
Процедура
|
Settings и нажмите, на экран выводится
объект ними такие действия, iFib_Next As Integer Integer ‘Целое числоНа вкладке как в нем с просроченными счетами.
|
|
макрос объекту» из макроса. Справа от
|
|
в группе Возможно, часть кода
создать и выполнить написании более сложных на Ленту меню.
выберите желаемый и можно использовать стрелки комбинациях клавиш клавишу пользователь является автором VBA. больше равно илиУрок подготовлен для Вас окно с сообщением, что при обращении значения ячеек столбца As Integer ‘Хранит Dim iRowNumber As
Код будет понятной. макрос, который быстро макросов. Либо Вы можете
нажмите на кнопку для настройки положения SHIFT. Как только надстройки или доверительным
|
Дальнейшие действия
-
Например, самый простой способ меньше равно относительно командой сайта office-guru.ru если на текущем
-
к ячейке или A активного листа размер следующего приращения
Процедура
|
Integer ‘Целое числонажмите кнопку
Измените код, закройте редактор применяет такое форматированиеКликните эту ссылку, чтобы создать пользовательскую функцию ОК.
|
|
Макрос для выборочного выделенияПеревел: Антон Андронов
|
|
мышки щелкните по И нажмите ОК.
CTRL+» и попытаетесь Excel можно присвоитьВыберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Макросы».
Excel.VBA коды для As Range) ‘Проверяем записи ссылки указывать номер текущей строки = 0 ‘Цикл одну за другой Дополнительные сведения о создании
Для тех, кто только остальные встроенные функции созданной кнопке иТеперь на панели быстрого ввести большую букву
свою комбинацию горячихВ появившемся окне «Макрос»Исходный код макроса простых программ макросов
|
Дальнейшие действия
выбрана ли ячейка не обязательно. Dim dCellValues() As Do While будет ячейки A1:A100 доПри редактировании макроса можно
support.office.com>
Примеры макросов Excel
макросов см. вМакросы и средства VBA начинает осваивать язык Excel. в появившемся контекстном
Макрос Excel: пример 1
доступа появилась еще для комбинации, естественно клавиш. Благодаря этому из списка всех для автоматического выделения необходимых при работе B1 If Target.Count’Процедура Sub при Double ‘Массив для выполняться до тех тех пор, пока немного изучить язык статье Создание и находятся на вкладке программирования Excel VBA,Макрос — это компьютерный
меню выберите опцию одна кнопка для. с использованием клавиши вы можете вызывать в первую очередь отдельных ячеек по с таблицами на = 1 And помощи цикла считывает хранения значений ячеек пор, пока значение не будет найдена программирования Visual Basic. удаление макросов.Разработчик предлагаем небольшой вводный код, написанный для «Изменить текст». Удалите Достаточно нажать на SHIFT на клавиатуре, свою макропрограмму при доступных макросов для заданному условию в каждый день. Target.Row = 1 значения в столбце iRow = 1 ‘текущего числа Фибоначчи строка sFindText ForЧтобы изменить макрос, наСведения о запуске макросов, которая по умолчанию курс по Visual Excel на языке старый и введите нее и сразу сразу название поля нажатии определенной комбинации данной рабочей книги критериях поиска значений.Макрос для копирования листа And Target.Column = A рабочего листа ReDim dCellValues(1 To не превысит 1000 i = 1 вкладке см. в статье скрыта, поэтому сначала
Макрос Excel: пример 2
Basic for Applications. программирования Visual Basic новый текст «Мой же запуститься макрос. ввода поменяется на клавиш на клавиатуре. Excel выберите любой Как быстро выделять в Excel c 2 Then ‘Если Лист2, ‘выполняет с 10) ‘Цикл Do Do While iFib_Next
To 100 Ifразработчик Запуск макроса. нужно включить ее.Кликните эту ссылку, чтобы for Applications (VBA). макрос».Полезный совет! Чтобы изменить «Сочетание клавиш: CTRL+ Что может быть понравившийся вам и несмежные диапазоны макросом? любым количеством копий. ячейка B1 выбрана, каждым значением арифметические Until перебирает последовательно < 1000 If Cells(i, 1).Value =нажмите кнопку МакросыДействия перед записью макроса Дополнительные сведения см. перейти к учебнику Базовые понятия языкаПосле создания кнопки можно внешний вид кнопки SHIFT+». ее проще? нажмите на кнопкуМакрос для добавления строкПрактический пример с выполняем необходимое действие операции и записывает ячейки столбца A i = 1 sFindText Then ‘Если , выберите имя в статье Отображение Excel VBA программирования VBA рассматриваются ее настроить, изменив для макроса вВ результате будет немногоЧтобы присвоить свою комбинацию «Выполнить». с заданной высотой описанием и исходным MsgBox «Вы выбрали результат в ‘столбец активного листа ‘и Then ‘Особый случай совпадение с заданной макроса и нажмите
Макрос Excel: пример 3
Убедитесь в том, что вкладки «Разработчик». Урок подготовлен для Вас на нашем сайте ее размеры и окне «Параметры Excel»-«Панель длиннее комбинация, которая клавиш для определенногоПрограмма макроса выполнить свои в таблицу Excel. кодом макроса для ячейку B1″ End A активного рабочего извлекает их значения для первого элемента строкой найдено ‘сохраняем кнопку на ленте отображаетсяЗапись макроса командой сайта office-guru.ru в Учебнике по положение на листе. быстрого доступа», из позволит расширить варианты,
макроса следует сделать функции.Пошаговое руководство по одновременного копирования любого If End Sub листа (Лист1) Sub в массив до последовательности iStep = номер текущей строкиизменить вкладка Источник: http://www.excelfunctions.net/Writing-Excel-Macros.html VBA. Однако прежде Для этого снова правого списка элементов чтобы обойти часто так:Теперь мы можем двигаться написанию кода макроса количества рабочих листов. На примере этой процедуры Transfer_ColA() Dim i тех пор, пока 1 iFib = и выходим из. Откроется редактор VisualРазработчикВ группеПеревел: Антон Андронов чем приступить к щелкните правой кнопкой «Настройка панели быстрого используемые горячие клавиши.Снова выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Макросы». от простого к VBA для умнойМакрос для выделения и показано использование операторов
Макрос Excel: пример 4
As Integer Dim не встретится пустая 0 Else ‘Сохраняем цикла For iRowNumber Basic.. По умолчанию вкладкаКодАвтор: Антон Андронов написанию кода VBA, мышки по кнопке, доступа» следует выделитьExcel позволяет пользователям запускатьВ появившемся диалоговом окне еще простейшему) Ведь вставки пустых строк удаления пустых столбцовOn Error Col As Range ячейка Do Until размер следующего приращения = i ExitОбратите внимание на то,Разработчикна вкладкеПримечание: рекомендуем познакомиться с а потом нажмите макрос и нажать макросы с помощью «Макрос» выберите желаемую запускать макросы таким между ячейками таблицы. в Excel.и
Dim dVal As IsEmpty(Cells(iRow, 1)) ‘Проверяем, перед тем, как For End If как в немне видна, поэтомуРазработчик Мы стараемся как можно уроками, в которых клавишу Esc на на кнопку «Изменить». панели быстрого доступа макропрограмму из списка способом весьма неудобно. Как автоматически вставитьВыделение, удаление, скрытиеResume Double ‘Присваиваем переменной что массив dCellValues перезаписать ‘текущее значение Next i ‘Сообщаем выглядят записанные действия. необходимо выполнить указанныенажмите кнопку оперативнее обеспечивать вас рассматривается безопасность макросов клавиатуре, чтобы скрыть Будет предложена небольшая к инструментам. Данная и нажмите на Далее рассмотрим более строки через одну и добавление пустыхдля обработки ошибок. Col столбец A имеет достаточный размер последовательности iStep = пользователю во всплывающем Возможно, часть кода ниже действия.Запись макроса актуальными справочными материалами Excel и редактор
Макрос Excel: пример 5
контекстное меню. У галерея иконок для панель по умолчанию кнопку «Параметры». простые варианты. ячейку? столбцов в таблицу В данном коде рабочего листа Лист ‘Если нет – iFib iFib = окне найдена ли будет понятной.Выберите
. на вашем языке. Visual Basic. кнопки появляться маркеры, нового оформления внешнего находиться в самомВ появившемся диалоговом окнеПолезный совет! Если выКак сделать границы ячеек по условию пользователя также показан пример 2 Set Col увеличиваем размер массива iFib_Next End If искомая строка ‘ЕслиИзмените код, закройте редакторExcelЕсли необходимо, заполните поля
Макрос Excel: пример 6
Эта страница переведенаВ Excel предусмотрена встроенная с помощью которых вида кнопки запуска верху окна программы. «Параметры макроса» в хотите отредактировать макрос макросом в таблице с помощью макросов. открытия и чтения
= Sheets(«Лист2»). Columns(«A») i на 10 при ‘Выводим текущее число заданная строка найдена, Visual Basic и>Имя макроса автоматически, поэтому ее защита от вирусов, можно изменять ее макроса с панелиЧтобы запустить макрос с поле ввода «Сочетание тогда выберите его Excel. Исходные коды предоставляться данных из файла. = 1 ‘При помощи ReDim If Фибоначчи в столбце указываем в какой запустите макрос повторно.Параметры, текст может содержать которые могут проникнуть размеры. Наведите курсор инструментов. помощью панели быстрого клавиш: CTRL+» введите в списке вышеКак автоматически рисовать с описанием и’Процедура Sub присваивает помощи цикла считываем UBound(dCellValues) < iRow A активного рабочего ячейке найдено совпадение
Посмотрите, что произойдет.>
Сочетание клавиш
неточности и грамматические
в компьютер через
office-guru.ru>
Запуск и создание макросов в Excel для чайников
мышки на любойГлавным недостатком размещения кнопки доступа, требуется сделать маленькую или большую описанного инструмента и
Создание и выполнение макросов
границы в таблицах примерами в картинках. аргументам Val1 и
значения ячеек столбца Then ReDim Preserve листа ‘в строке If iRowNumber =Узнайте о том, какЛента и панельи ошибки. Для нас
макросы. Если хотите маркер на гранях с макросом на так: латинскую букву. И нажмите на кнопку с помощью макроса?Макрос для выделения и Val2 значения ячеек Col до тех dCellValues(1 To iRow
с индексом i 0 Then MsgBox создавать и запускать.Описание важно, чтобы эта запустить в книге или углах кнопки панели инструментов является
Щелкните на самую последнюю нажмите на кнопку «Войти», а не Автоматизированное форматирование границ удаления пустых строк A1 и B1 пор, ‘пока не + 9) End Cells(i, 1).Value = «Строка » & макросы. Дополнительные сведения
В категории, а затем нажмите статья была вам Excel макрос, убедитесь, и удерживая левую то, что кнопка кнопку на панели ОК. используйте кнопку «Изменить». ячеек по разным
в Excel. ‘из рабочей книги встретится пустая ячейка If ‘Сохраняем значение iFib ‘Вычисляем следующее sFindText & « см. в статьеНастроить ленту кнопку
полезна. Просим вас что параметры безопасности клавишу мышки перетягивайте, будет всегда доступна быстрого доступа (стрелкаТеперь нажмите свою комбинацию С помощью кнопки цветам, стилям иПримеры макросов с Data.xlsx, находящейся в
Do Until IsEmpty(Col.Cells(i)) текущей ячейки в число Фибоначчи и не найдена» Else Создание, выполнение, изменениев спискеOK уделить пару секунд настроены правильно. изменяя таким образом для других файлов,
вниз), чтобы получить горячих клавиш для войти вы всегда толщине линий используя исходными кодами для папке C:\Documents and ‘Выполняем арифметические операции массиве dCellValues dCellValues(iRow) увеличиваем индекс позиции MsgBox «Строка « и удаление макроса.
Основные вкладки, чтобы начать запись и сообщить, помоглаКликните эту ссылку, чтобы ее размеры. Теперь даже когда файл доступ к меню
exceltable.com>
Как запустить макрос в Excel разными способами
вызова выбранного макроса. сможете перейти к макрос. удаления, выделения, добавления Settings Sub Set_Values(Val1 над значением текущей = Cells(iRow, 1).Value элемента на 1 & sFindText &Следующие простые примеры макросовустановите флажок макроса. ли она вам, узнать больше о нажмите на кнопку
с этим макросом «Настроить панель», в Как видно теперь исходному коду выбранногоМакрос для объединения повторяющихся и скрытия пустых
Как выполнить макрос VBA в Excel
As Double, Val2 ячейки dVal = iRow = iRow iFib_Next = iFib
- » найдена в
- Excel иллюстрируют некоторыеРазработчикВыполните действия, которые нужно с помощью кнопок параметрах безопасности макросов левой кнопкой мышки будет закрыт. И котором необходимо выбрать вашему макросу присвоена
макроса. Автоматически откроется ячеек в таблице
строк в исходной As Double) Dim Col.Cells(i).Value * 3 + 1 Loop + iStep i ячейке A» & возможности и приёмы,
, а затем нажмите автоматизировать, например ввод внизу страницы. Для в Excel и удерживая ее если в такие опцию «Другие команды». комбинация горячих клавиш редактор Visual Basic Excel. таблице данных. DataWorkbook As Workbook — 1 ‘Следующая End Sub = i + iRowNumber End If описанные в самоучителе кнопку стандартного текста или удобства также приводимВ Excel есть встроенный
перемещайте кнопку по случаи нажать на В результате чего для быстрого вызова. именно в томПрактический пример иМакрос для выделения ячеек On Error GoTo команда записывает полученныйВ этом примере процедура 1 Loop End End Sub по Excel VBA.Сохранить заполнение столбца данных. ссылку на оригинал редактор Visual Basic, листу документа Excel кнопку запуска макроса, откроется окно «ПараметрыОбратите внимание! В диалоговом месте где написан пошаговый разбор исходного
со снятой защитой
Запуск макроса с помощью горячих клавиш
ErrorHandling ‘Открываем рабочую результат в столбецSub SubСледующая процедураПервоначально эта процедура. На вкладке (на английском языке). который хранит код
в любое другое тогда откроется файл Excel», к которому окне «Параметры макроса»
- код данного макроса.
- VBA-кода макроса для на листе Excel. книгу с данными A активного рабочегосчитывает значения из
- Эта процедураSubSubЗапись макросаРазработчикДля автоматизации часто выполняемых макроса и взаимодействует место. Чтобы затвердить
где он находиться можно было получить доступно поле для Кнопка «Изменить» к автоматического объединения повторяющихсяИсходный код с Set DataWorkbook =
листа ‘Имя листа столбцаSub– пример использованиябыла приведена, как щелкните в Microsoft Excel с книгой Excel. все изменения кнопки и только потом доступ и другим ввода его описания. сожалению, не для
одинаковых ячеек в примером и описанием Workbooks.Open(«C:\Documents and Settings\Data») в ссылке указыватьAпросматривает ячейки столбца цикла пример использования комментариевНа вкладкеОстановить запись задач можно записать Редактор Visual Basic сделайте щелчок левой выполниться VBA код. путем: «ФАЙЛ»-«Параметры»-«Панель быстрого Данное описание будет всех макросов работает строках таблицы. 1 для VBA-макроса выделения ‘Присваиваем переменным Val1 нет необходимости, такрабочего листаADo While в коде VBA.Разработчик
. макрос. Макрос представляет выделяет ошибки в кнопкой мышки вЕсли вы хотите запускать
Как запустить макрос на панели быстрого доступа
доступа». Или щелкнув доступно внизу при одинаково. 2 3 4 ячеек у которых, и Val2 значения как это активный
Лист2активного листа до. Здесь также можно Однако, здесь также
- нажмите кнопкуБолее подробное изучение макроса собой действие (или синтаксисе языка программирования любую область листа макрос только из правой кнопкой мышки выборе макроса изВнимание! Макросы, созданные вЕсли уже имеете код снятая защита от из заданной рабочей лист. Cells(i, 1)и выполняет с тех пор, пока увидеть, как объявляются можно увидеть, какЗапись макроса набор действий), которое и предоставляет инструменты
- (например, по любой рабочей книги Excel, по любой панели
- списка.
Рекомендуем всегда надстройках Excel, могут макроса записанный в ввода значений данных книги Val1 = = dVal i ними арифметические операции. не встретит пустую переменные, работу со объявляются переменные, как.При редактировании макроса можно можно выполнять любое отладки для отслеживания ячейке) вне области где он содержит Excel на любой
подписывать свои макросы. быть по умолчанию рабочей книге или и редактирования. Sheets(«Лист1»).Cells(1, 1) Val2 = i +
Результаты заносятся в ячейку. Значения записываются ссылками на ячейки работают ссылки наЕсли необходимо, заполните поля немного изучить язык количество раз. При работы и обнаружения кнопки. свой исходный код? закладке и выбрать Такой пользовательский тон не доступны в надстройке, можно егоМакрос для поиска ячеек = Sheets(«Лист1»).Cells(1, 2)
1 Loop End ячейки столбца в массив. Этот Excel и применение ячейки Excel, использованиеИмя макроса программирования Visual Basic. создании макроса записываются ошибок в коде,Теперь если мы нажмем В такие случаи опцию «Настройка панели этики работы с списке диалогового окна запустить и выполнить в Excel с
Запуск макроса с помощью кнопки на рабочем листе Excel
DataWorkbook.Close Exit Sub SubA простой макрос Excel условного оператора цикла,Чтобы изменить макрос, в щелчки мышью и помогая таким образом на кнопку левой прекрасным решением будет
- быстрого доступа». Excel будет высоко
- «Макрос» в целях несколькими способами. Если выпадающим списком и ErrorHandling: ‘Если файл
- Данный макрос показывает примерна активном рабочем показывает работу сIfForСочетание клавиш
- группе нажатия клавиш. После разработчику при написании кнопкой мышки сразу создание кнопки наВ левом выпадающем списке оценен, когда список политики безопасности. Ведь еще нет кода условным форматированием.
не найден, пользователю кода VBA, отслеживающего листе. В этом динамическими массивами, а., условного оператораиКод создания макроса его кода. же выполниться назначенный листе Excel и «Выбрать команду из:» пополниться десятками макросов. имена макросов в макроса или выИсходный VBA-код макроса будет предложено поместить событие Excel. Событие, макросе продемонстрировано использование также использование цикла’Процедура Sub выводитIfОписаниена вкладке можно отредактировать, чтобыКликните эту ссылку, чтобы ей код VBA. назначить ей запуск выберите опцию «Макросы».Полезный совет! Старайтесь не надстройках Excel обычно еще не знаете, для поиска выпадающих искомый файл ‘в к которому привязан
объектов Excel. ВDo Until числа Фибоначчи, неи вывод на, а затем нажмите
exceltable.com>
Разработчик
- Как в excel написать макрос
- Как в эксель написать в две строки
- Написать макрос в excel для новичков чайников
- В эксель количество дней в месяце
- В эксель округление в меньшую сторону
- В эксель округление в большую сторону
- Возведение квадрат в эксель
- Вычислить количество дней между датами в эксель
- В эксель удалить страницы в
- В эксель степень
- В эксель разность
- В эксель разница
VBA Excel.
Рабочий лист (создание, копирование, удаление)
Создание, копирование, перемещение и удаление рабочих листов Excel с помощью кода VBA. Методы Sheets.Add, Worksheet.Copy, Worksheet.Move и Worksheet.Delete.
Создание новых листов
Создание новых рабочих листов осуществляется с помощью метода Sheets.Add.
Синтаксис метода Sheets.Add
expression.Add [Before, After, Count, Type]
где expression — переменная, представляющая собой объект Sheet.
Компоненты метода Sheets.Add
- Before* — необязательный параметр типа данных Variant, указывающий на лист, перед которым будет добавлен новый.
- After* — необязательный параметр типа данных Variant, указывающий на лист, после которого будет добавлен новый.
- Count — необязательный параметр типа данных Variant, указывающий, сколько листов будет добавлено (по умолчанию — 1).
- Type — необязательный параметр типа данных Variant, указывающий тип листа: xlWorksheet** (рабочий лист) или xlChart (диаграмма), по умолчанию — xlWorksheet.
*Если Before и After не указаны, новый лист, по умолчанию, будет добавлен перед активным листом.
**Для создания рабочего листа (xlWorksheet) можно использовать метод Worksheets.Add, который для создания диаграмм уже не подойдет.
Примеры создания листов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | ‘Создание рабочего листа: Sheets.Add Worksheets.Add ThisWorkbook.Sheets.Add After:=ActiveSheet, Count:=2 Workbooks(«Книга1.xlsm»).Sheets.Add After:=Лист1 Workbooks(«Книга1.xlsm»).Sheets.Add After:=Worksheets(1) Workbooks(«Книга1.xlsm»).Sheets.Add After:=Worksheets(«Лист1»)
‘Создание нового листа с заданным именем: Workbooks(«Книга1.xlsm»).Sheets.Add.Name = «Мой новый лист»
‘Создание диаграммы: Sheets.
‘Добавление нового листа перед ‘последним листом рабочей книги Sheets.Add Before:=Sheets(Sheets.Count)
‘Добавление нового листа в конец Sheets.Add After:=Sheets(Sheets.Count) |
- Лист1 в After:=Лист1 — это уникальное имя листа, указанное в проводнике редактора VBA без скобок.
- Лист1 в After:=Worksheets(«Лист1») — это имя на ярлыке листа, указанное в проводнике редактора VBA в скобках.
Создаваемый лист можно присвоить объектной переменной:
1 2 3 4 5 6 7 8 9 10 | Dim myList As Object ‘В активной книге Set myList = Worksheets.Add ‘В книге «Книга1.xlsm» Set myList = Workbooks(«Книга1.xlsm»).Worksheets.Add ‘Работаем с переменной myList.Name = «Listok1» myList.Cells(1, 1) = myList. ‘Очищаем переменную Set myList = Nothing |
Если создаваемый лист присваивается объектной переменной, он будет помещен перед активным листом. Указать дополнительные параметры невозможно.
Копирование листов
Копирование рабочих листов осуществляется с помощью метода Worksheet.Copy.
Синтаксис метода Worksheet.Copy
expression.Copy [Before, After]
где expression — переменная, представляющая собой объект Worksheet.
Компоненты метода Worksheet.Copy
- Before* — необязательный параметр типа данных Variant, указывающий на лист, перед которым будет добавлена копия.
- After* — необязательный параметр типа данных Variant, указывающий на лист, после которого будет добавлена копия.
*Если Before и After не указаны, Excel создаст новую книгу и поместит копию листа в нее. Если скопированный лист содержит код в проекте VBA (в модуле листа), он тоже будет перенесен в новую книгу.
Примеры копирования листов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ‘В пределах активной книги ‘(уникальные имена листов) Лист1.Copy After:=Лист2
‘В пределах активной книги ‘(имена листов на ярлычках) Worksheets(«Лист1»).Copy Before:=Worksheets(«Лист2»)
‘Вставить копию в конец Лист1.Copy After:=Sheets(Sheets.Count)
‘Из одной книги в другую Workbooks(«Книга1.xlsm»).Worksheets(«Лист1»).Copy _ After:=Workbooks(«Книга2.xlsm»).Worksheets(«Лист1»)
‘Один лист активной книги в новую книгу Лист1.Copy
‘Несколько листов активной книги в новую книгу* Sheets(Array(«Лист1», «Лист2», «Лист3»)).Copy
‘Все листы книги с кодом в новую книгу ThisWorkbook. |
* Если при копировании в новую книгу нескольких листов хотя бы один лист содержит умную таблицу — копирование невозможно. Один лист, содержащий умную таблицу, копируется в новую книгу без проблем.
Если рабочие книги указаны как элементы коллекции Workbooks, в том числе ActiveWorkbook и ThisWorkbook, листы нужно указывать как элементы коллекции Worksheets, использование уникальных имен вызовет ошибку.
Перемещение листов
Перемещение рабочих листов осуществляется с помощью метода Worksheet.Move.
Синтаксис метода Worksheet.Move
expression.Move [Before, After]
где expression — переменная, представляющая собой объект Worksheet.
Компоненты метода Worksheet.Move
- Before* — необязательный параметр типа данных Variant, указывающий на лист, перед которым будет размещен перемещаемый лист.
- After* — необязательный параметр типа данных Variant, указывающий на лист, после которого будет размещен перемещаемый лист.
*Если Before и After не указаны, Excel создаст новую книгу и переместит лист в нее.
Примеры перемещения листов
Простые примеры перемещения листов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | ‘В пределах активной книги ‘(уникальные имена листов) Лист1.Move After:=Лист2
‘В пределах активной книги ‘(имена листов на ярлычках) Worksheets(«Лист1»).Move Before:=Worksheets(«Лист2»)
‘Размещение после последнего листа: Лист1.Move After:=Sheets(Sheets.Count)
‘Из одной книги в другую Workbooks(«Книга1.xlsm»).Worksheets(«Лист1»).Move _ After:=Workbooks(«Книга2.xlsm»).Worksheets(«Лист1»)
‘В новую книгу Лист1.Move |
Если рабочие книги указаны как элементы коллекции Workbooks, в том числе ActiveWorkbook и ThisWorkbook, листы нужно указывать как элементы коллекции Worksheets, использование уникальных имен вызовет ошибку.
Перемещение листа «Лист4» в позицию перед листом, указанным как по порядковому номеру, так и по имени ярлыка:
1 2 3 4 5 6 | Sub Peremeshcheniye() Dim x x = InputBox(«Введите имя или номер листа», «Перемещение листа «Лист4»») If IsNumeric(x) Then x = CLng(x) Sheets(«Лист4»).Move Before:=Sheets(x) End Sub |
Удаление листов
Удаление рабочих листов осуществляется с помощью метода Worksheet.Delete
Синтаксис метода Worksheet.Delete
expression.Delete
где expression — переменная, представляющая собой объект Worksheet.
Примеры удаления листов
1 2 3 4 5 6 7 8 9 10 11 | ‘По уникальному имени Лист1.Delete
‘По имени на ярлычке Worksheets(«Лист1»).
‘По индексу листа Worksheets(1).Delete
‘В другой книге Workbooks(«Книга1.xlsm»).Worksheets(«Лист1»).Delete |
Если рабочие книги указаны как элементы коллекции Workbooks, в том числе ActiveWorkbook и ThisWorkbook, листы нужно указывать как элементы коллекции Worksheets, использование уникальных имен вызовет ошибку.
Как обратиться к рабочему листу, переименовать, скрыть или отобразить его с помощью кода VBA Excel, смотрите в этой статье.
Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.
Руководство по созданию диаграмм с помощью макроса в Excel
Как добавлять, редактировать и размещать диаграммы в Excel с помощью VBA.
В этом руководстве рассказывается, что делать при добавлении диаграммы.
Разделы:
Добавить диаграмму с VBA/Macros
Установив диаграмму.
Меньше аргументов
Примечания
Добавить диаграмму с помощью VBA/макросов
Sub CreateChart() 'Скажите макросу создать переменную, которая может содержать диаграмму.Dim myChart как ChartObject 'Создайте диаграмму и поместите только что созданную диаграмму внутрь созданной выше переменной. Установите myChart = Worksheets("sheet1").ChartObjects.Add(10, 80, 300, 175) 'Добавить несколько основных элементов на диаграмму myChart.Chart.ChartWizard _ Источник: = Рабочие листы ("Лист1"). Диапазон ("A1: E4"), _ Галерея:=xlLine, _ Заголовок:="Название диаграммы", _ CategoryTitle:="Название категории", _ ValueTitle:="Заголовок значения", _ HasLegend:=Истина Конец суб
Это основной код для добавления диаграммы на рабочий лист с помощью макроса. Каждый раздел кода в макросе имеет комментарий, который объясняет, что делает этот раздел, а также каждый раздел ниже здесь более подробно объясняет, как изменить и использовать макрос.
Установить исходные данные диаграммы
Указывает диаграмме, какие данные использовать.
Sub CreateChart() 'Скажите макросу создать переменную, которая может содержать диаграмму. Dim myChart как ChartObject 'Создайте диаграмму и поместите только что созданную диаграмму внутрь созданной выше переменной.Установите myChart = Worksheets("sheet1").ChartObjects.Add(10, 80, 300, 175) 'Добавить несколько основных элементов на диаграмму myChart.Chart.ChartWizard _ Источник: = Рабочие листы ("Лист1"). Диапазон ("A1: E4"), _ Галерея:=xlLine, _ Заголовок:="Название диаграммы", _ CategoryTitle:="Название категории", _ ValueTitle:="Заголовок значения", _ HasLegend:=Истина End Sub
Source:=Worksheets(«Sheet1»).Range(«A1:E4») содержит ссылку на диапазон для диаграммы.
Рабочие листы(«Лист1»).Range(«A1:E4») — ссылка на диапазон.
Обязательно укажите, с какого рабочего листа вы хотите получить исходные данные, в противном случае они будут поступать с текущего активного или видимого рабочего листа.
Возможные значения
Любой диапазон из любого рабочего листа, включая именованные диапазоны.
Установить тип диаграммы
Управляет типом используемой диаграммы.
Sub CreateChart() 'Скажите макросу создать переменную, которая может содержать диаграмму.Dim myChart как ChartObject 'Создайте диаграмму и поместите только что созданную диаграмму внутрь созданной выше переменной. Установите myChart = Worksheets("sheet1").ChartObjects.Add(10, 80, 300, 175) 'Добавить несколько основных элементов на диаграмму myChart.Chart.ChartWizard _ Источник: = Рабочие листы ("Лист1"). Диапазон ("A1: E4"), _ Галерея:=xlLine, _ Заголовок:="Название диаграммы", _ CategoryTitle:="Название категории", _ ValueTitle:="Заголовок значения", _ HasLegend:=Истина Конец сабвуфера
Галерея:=xlLine имя этого аргумента Галерея , что может показаться запутанным, но он просто управляет типом диаграммы, которая будет использоваться для отображения исходных данных. xlLine — это тип диаграммы, который будет использоваться. Вы можете просмотреть полный список возможных типов диаграмм ниже здесь.
Список возможных типов диаграмм:
Имя | Значение | Описание |
---|---|---|
xl3DArea | -4098 | 3D-область.![]() |
xl3DAreaStacked | 78 | Область с накоплением 3D. |
xl3DAreaStacked100 | 79 | 100 % площадь стопки. |
ксл3дбаркластеред | 60 | 3D кластерный бар. |
ксл3дбарстекед | 61 | 3D Составная панель. |
ксл3дбарстакед100 | 62 | 3D 100% Stacked Bar. |
ксл3дколумн | -4100 | 3D-столбец. |
xl3DColumnClustered | 54 | Трехмерная кластерная колонка. |
xl3DColumnStacked | 55 | 3D составная колонна. |
xl3DColumnStacked100 | 56 | Колонка 3D 100% Stacked. |
xl3DLine | -4101 | 3D-линия. |
xl3DPie | -4102 | Трехмерный пирог. |
xl3DPieExploded | 70 | Взорванный 3D-круг.![]() |
xlArea | 1 | Район |
xlAreaStacked | 76 | Сложенная область. |
кслареастакед100 | 77 | 100 % площадь стопки. |
кслбаркластеред | 57 | Слитный слиток. |
кслбарофпие | 71 | Плитка пирога. |
xlBarStacked | 58 | Составной бар. |
кслбарстекед100 | 59 | 100% составной брусок. |
xlBubble | 15 | Пузырь. |
xlBubble3DEffect | 87 | Пузырь с 3D-эффектами. |
кслколумнкластеред | 51 | Кластерный столбец. |
кслколумнстакед | 52 | Составная колонна. |
кслколумнстакед100 | 53 | Колонка со 100% накоплением. |
кслконебаркластеред | 102 | Конусный стержень с гроздьями.![]() |
кслконебарстекед | 103 | Многослойный конусный стержень. |
кслконебарстакед100 | 104 | 100% составной конусный стержень. |
XLConeCol | 105 | 3D конусная колонна. |
кслконеколкластеред | 99 | Сгруппированная конусная колонна. |
кслконеколстакед | 100 | Многослойная конусная колонна. |
кслконеколстакед100 | 101 | 100% многослойная конусная колонка. |
xlCylinderBarClustered | 95 | Сгруппированный цилиндрический стержень. |
xlCylinderBarStacked | 96 | Составной цилиндрический стержень. |
xlCylinderBarStacked100 | 97 | 100% составной цилиндрический стержень. |
xlCylinderCol | 98 | 3D цилиндрическая колонна.![]() |
xlCylinderColClustered | 92 | Сгруппированная конусная колонна. |
xlCylinderColStacked | 93 | Многослойная конусная колонна. |
xlCylinderColStacked100 | 94 | Цилиндрическая колонка со 100%-ным штабелированием. |
XLПончик | -4120 | Пончик. |
xlDoughnutВзорванный | 80 | Взорванный пончик. |
XLLine | 4 | Линия. |
xlLineMarkers | 65 | Линия с маркерами. |
xlLineMarkersStacked | 66 | Составная линия с маркерами. |
xlLineMarkersStacked100 | 67 | Линия со 100% стопкой и маркерами. |
xlLineStacked | 63 | Составная линия. |
ксллайнстакед100 | 64 | Линия со 100% накоплением.![]() |
xlPie | 5 | Пирог. |
xlPieExploded | 69 | Взорванный пирог. |
XLPieOfPie | 68 | Пирог пирога. |
кслпирамидбаркластеред | 109 | Пирамидальный слиток. |
xlPyramidBarStacked | 110 | Пирамидальный стержень. |
xlPyramidBarStacked100 | 111 | 100% составной пирамидальный брусок. |
xlPyramidCol | 112 | 3D Пирамидальная колонна. |
кслпирамидколкластеред | 106 | Сгруппированная пирамидальная колонна. |
xlPyramidColStacked | 107 | Пирамидальная колонна. |
кслпирамидколстэкед100 | 108 | Пирамидальная колонна, состоящая из 100% слоев. |
XLRadar | -4151 | Радар.![]() |
xlRadarFilled | 82 | Заполненный радар. |
xlRadarMarkers | 81 | Радар с маркерами данных. |
xlStockHLC | 88 | High-Low-Close. |
XLStockOHLC | 89 | Открыть-Высокий-Низкий-Закрыть. |
кслстоквхлк | 90 | Volume-High-Low-Close. |
xlStockVOHLC | 91 | Volume-Open-High-Low-Close. |
xlSurface | 83 | 3D-поверхность. |
кслсурфацетопвиев | 85 | Поверхность (вид сверху). |
кслсурфацетопвиевкаркас | 86 | Поверхность (каркас вида сверху). |
xlSurfaceWireframe | 84 | 3D-поверхность (каркас). |
xlXYScatter | -4169 | Скаттер. |
xlXYScatterLines | 74 | Скаттер с линиями.![]() |
xlXYScatterLinesNoMarkers | 75 | Scatter с линиями и без маркеров данных. |
xlXYScatterSmooth | 72 | Разброс со сглаженными линиями. |
xlXYScatterSmoothNoMarkers | 73 | Разброс со сглаженными линиями и без маркеров данных. |
Изменить название диаграммы
Название диаграммы.
Подпрограмма CreateChart() 'Скажите макросу создать переменную, которая может содержать диаграмму. Dim myChart как ChartObject 'Создайте диаграмму и поместите только что созданную диаграмму внутрь созданной выше переменной. Установите myChart = Worksheets("sheet1").ChartObjects.Add(10, 80, 300, 175) 'Добавить несколько основных элементов на диаграмму myChart.Chart.ChartWizard _ Источник: = Рабочие листы ("Лист1"). Диапазон ("A1: E4"), _ Галерея:=xlLine, _ Заголовок:="Заголовок диаграммы", _ CategoryTitle:="Название категории", _ ValueTitle:="Заголовок значения", _ HasLegend:=Истина Конец сабвуфера
Заголовок:=»Заголовок диаграммы» поместите все, что хотите, в кавычки для названия диаграммы.
Установить заголовки категорий и значений
Sub CreateChart() 'Скажите макросу создать переменную, которая может содержать диаграмму. Dim myChart как ChartObject 'Создайте диаграмму и поместите только что созданную диаграмму внутрь созданной выше переменной. Установите myChart = Worksheets("sheet1").ChartObjects.Add(10, 80, 300, 175) 'Добавить несколько основных элементов на диаграмму myChart.Chart.ChartWizard _ Источник: = Рабочие листы ("Лист1"). Диапазон ("A1: E4"), _ Галерея:=xlLine, _ Заголовок:="Название диаграммы", _ CategoryTitle:="Название категории", _ ValueTitle:="Заголовок значения", _ HasLegend:=Истина Конец сабвуфера
CategoryTitle:=»Название категории» название, которое располагается внизу диаграммы. Поместите все, что хотите, в кавычки.
ValueTitle:=»Заголовок значения» заголовок в левой части диаграммы. Поместите все, что хотите, в кавычки.
Включить легенду
Sub CreateChart() 'Скажите макросу создать переменную, которая может содержать диаграмму.Dim myChart как ChartObject 'Создайте диаграмму и поместите только что созданную диаграмму внутрь созданной выше переменной. Установите myChart = Worksheets("sheet1").ChartObjects.Add(10, 80, 300, 175) 'Добавить несколько основных элементов на диаграмму myChart.Chart.ChartWizard _ Источник: = Рабочие листы ("Лист1"). Диапазон ("A1: E4"), _ Галерея:=xlLine, _ Заголовок:="Название диаграммы", _ CategoryTitle:="Название категории", _ ValueTitle:="Заголовок значения", _ HasLegend:=Истина Конец сабвуфера
HasLegend:=True если установлено значение True , появится легенда, а также часто по умолчанию появляется легенда. Если вы хотите убедиться, что легенда отсутствует, установите для этого значения значение False .
Возможные значения
True показать легенду.
Ложь не показывать легенду.
Иногда легенды появляются по умолчанию; используйте False, если вы хотите, чтобы ничего не отображалось.
Изменить размер и положение диаграммы
Sub CreateChart() 'Скажите макросу создать переменную, которая может содержать диаграмму. Dim myChart как ChartObject 'Создайте диаграмму и поместите только что созданную диаграмму внутрь созданной выше переменной. Set myChart = Worksheets("лист1").ChartObjects.Add(10, 80, 300, 175) 'Добавить несколько основных элементов на диаграмму myChart.Chart.ChartWizard _ Источник: = Рабочие листы ("Лист1"). Диапазон ("A1: E4"), _ Галерея:=xlLine, _ Заголовок:="Название диаграммы", _ CategoryTitle:="Название категории", _ ValueTitle:="Заголовок значения", _ HasLegend:=Истина Конец сабвуфера
ChartObjects.Add(10, 80, 300, 175) числа здесь управляют размером и положением диаграммы.
Добавить (слева, сверху, ширина, высота)
10 — это позиция с левой стороны рабочего листа. Вы можете установить это число как угодно, чтобы диаграмма хорошо вписывалась в ваши данные.
80 это позиция из верхних рабочих листов. Вы можете установить это число как угодно, чтобы диаграмма хорошо вписывалась в ваши данные.
300 — ширина диаграммы.
175 — это высота диаграммы.
Поэкспериментируйте с этими значениями, пока не получите желаемый размер и положение диаграммы на листе. Обратите внимание, что добавление легенды к диаграмме сделает ее меньше, поскольку для отображаемых данных будет меньше места.
Меньше аргументов
Приведенный выше пример включает своего рода «интересный» способ записи аргументов для функции в VBA.
myChart.Chart.ChartWizard _ Источник: = Рабочие листы ("Лист1"). Диапазон ("A1: E4"), _ Галерея:=xlLine, _ Заголовок:="Название диаграммы", _ CategoryTitle:="Название категории", _ ValueTitle:="Заголовок значения", _ HasLegend:=True
Каждый аргумент для ChartWizard помещается в отдельную строку и имеет следующий формат:
Источник:= каждая строка начинается с имени аргумента и :=
, _ каждая строка заканчивается запятой и символом подчеркивания.
Последняя строка это важно! Последняя строка для ChartWizard не должна заканчиваться на , _ Обратите внимание, что последняя строка такова: HasLegend:=True , но если вы не хотите включать аргумент HasLegend и хотите, чтобы он заканчивался аргументом ValueTitle, вы должны удалить аргумент HasLegend (вся строка) и удалить , _ из аргумента Value Title, например:
myChart.Chart.ChartWizard _ Источник: = Рабочие листы ("Лист1"). Диапазон ("A1: E4"), _ Галерея:=xlLine, _ Заголовок:="Название диаграммы", _ CategoryTitle:="Название категории", _ ValueTitle:="Заголовок значения"
Сначала это может показаться запутанным, но это стандартная практика в VBA и макросах.
Примечания
Существует множество способов добавления диаграмм в Excel, особенно учитывая новые и старые версии программы; однако в приведенном выше примере представлено надежное решение, которое будет работать во многих версиях Excel.
Загрузите образец файла, чтобы увидеть приведенные выше примеры в Excel.
Как написать код VBA для создания нового листа в Excel (макрос)
Sheets.Add Method
Напишите код VBA для ДОБАВЛЕНИЯ нового листа в книгу
Различные способы добавления новых листов в книгу с помощью кода VBA
1. Добавить один лист
2. Добавить несколько листов
3. Добавить Лист с именем
4. Добавить лист с именем из ячейки
5. Добавить лист после/перед определенным листом
6. Добавить новый лист в начале
7. Добавить новый лист в Конец (после последнего листа)
8. Добавить несколько листов и использовать имена из диапазона
Дополнительные руководства по рабочим листам
Когда вы начнете изучать VBA, одна из самых крутых вещей, которую вы можете сделать, — это написать код VBA для вставки нового рабочего листа в рабочую книгу.
Ну, уже есть горячая клавиша для вставки нового рабочего листа, или вы также можете использовать обычную опцию, но преимущество использования кода VBA заключается в том, что вы можете добавить несколько рабочих листов одним щелчком мыши, и вы также можете определить, где вы хотите добавить его.
Для этого вам нужно использовать метод Sheets.Add, и в этом посте мы узнаем, как использовать его для добавления одного или нескольких листов в книгу.
Sheets.Add Method
Sheets.Add ([До], [После], [Количество], [Тип])
- До: добавление нового листа перед листом.
- После: добавление нового листа перед листом.
- Количество: Количество листов для добавления.
- Тип: Тип листа, который вы хотите добавить (ССЫЛКА)
Напишите код VBA для ДОБАВЛЕНИЯ нового листа в рабочую книгу
Откройте редактор Visual Basic и выполните следующие действия.
- Во-первых, вам нужно ввести метод Sheets.
Add.
- Затем вам нужно определить место для добавления нового листа (до или после).
- Следующее, что нужно сделать, это ввести количество рабочих листов.
- В конце концов, тип листа.
Различные способы добавления новых листов в книгу с помощью кода VBA
Ниже приведены различные способы добавления нового листа в книгу:
1. Добавить один лист
Чтобы добавить один лист, вы можете используйте приведенный ниже код, где вы не указали аргумент.
Sub SheetAddExample1 ()
ActiveWorkbook.Sheets.Добавить
End Sub
Этот код указывает Excel добавить лист в активную книгу, но поскольку у вас нет аргументов, он будет использовать значения по умолчанию и добавит один рабочий лист (xlWorksheet) перед активным листом.
Вот еще один способ написать это, посмотрите код ниже.
ПодлистAddExample2()
Листы.Добавить
End Sub
Поскольку вы уже находитесь в активной рабочей книге, вы также можете использовать приведенный ниже код. Он делает то же самое.
2. Добавить несколько листов
Чтобы добавить несколько листов за один раз, вам просто нужно определить аргумент COUNT с количеством листов, которые вы хотите добавить.
Дополнительные листы добавления3()
Sheets.Add Count:=5
End Sub
Теперь количество определенных вами листов равно 5, поэтому при запуске этого кода он мгновенно добавляет пять новых листов в рабочую книгу.
3. Добавить лист с именем
Если вы хотите переименовать лист после его добавления, вы можете использовать следующий код:
Sub AddNewSheetswithNameExample1()
Sheets.Add.Name = "myNewSHeet"
End Sub
В приведенном выше коде мы использовали объект имени (ССЫЛКА), который помогает вам указать имя листа.
4. Добавить лист с именем из ячейки
Вы также можете взять значение для использования в качестве имени листа из ячейки.
Sub AddNewSheetswithNameExample2()
Листы.
Добавить.Имя = Диапазон ("A1")
End Sub
В приведенном выше коде ячейка A1 используется для получения имени нового листа.
5. Добавить лист после/перед определенным листом
Так как эти аргументы уже есть в Sheets.Add, где вы можете указать лист, чтобы добавить новый лист до или после него.
Sub AddSheetsExample5()
Sheets.Add Before:=Worksheets("mySheet")
Sheets.Add After:=Worksheets("mySheet")
End Sub
Теперь в приведенном выше коде у вас есть две строки кода, которые вы использовали до и после аргумента в методе Sheet.Add. Итак, когда вы запускаете этот код, он добавляет два листа, один перед и один после «mySheet».
6. Добавить новый лист в начале
С помощью аргумента перед использованием вы также можете добавить лист в начало листов, которые у вас есть в рабочей книге.
По сути, мы собираемся указать номер листа вместо имени листа.
Sub AddSheetsExample6()
Листы.
Добавить до:=Листы(1)
End Sub
В приведенном выше коде вы использовали номер листа (1), который указывает VBA добавить лист перед листом, который находится на первой позиции во всех рабочих листах. Таким образом, он всегда будет добавлять новый лист в начале.
7. Добавить новый лист в конце (после последнего листа)
Чтобы добавить новый лист в конец, нужно написать код по-другому. Итак, для этого вам нужно знать, сколько листов в книге, чтобы вы могли добавить новый лист в конце.
Sub AddSheetsExample8()
Sheets.Add After:= Sheets(Sheets.Count)
End Sub
В приведенном выше коде Sheet.Count возвращает количество листов, которые у вас есть в книге, и, поскольку вы определили аргумент after, он добавляет новый лист после последнего листа в книге.
8. Добавить несколько листов и использовать имена из диапазона
Следующий код подсчитывает строки из диапазона A1:A7. После этого он циклически добавляет листы в соответствии со счетом из диапазона и использует значения из диапазона, чтобы назвать лист при его добавлении.
Sub AddSheetsExample9()
Dim Sheets_count как целое число
Dim имя_листа как строка
Dim i как целое число
sheet_count = Диапазон ("A1: A7"). Строки. Количество
Для i = 1
имя_листа = Листы("мойЛист").Диапазон("A1:A7").Ячейки(i, 1).Значение
Листы.Добавить().Имя = имя_листа
Далее я
Конец суб
Но с приведенным выше кодом может быть вероятность того, что имя листа, которое вы хотите добавить, уже существует или у вас есть пустая ячейка в диапазоне имен.
В этом случае вам нужно написать код, который может проверить, существует ли лист с таким именем или нет, и является ли ячейка, из которой вы хотите взять имя листа, пустой или нет.
Если выполняются только оба условия, то следует добавить новый лист. Позвольте мне разделить это на два шага:
Первые , вам нужно написать пользовательскую функцию Excel , чтобы проверить, существует ли уже лист с таким именем или нет.
Функция SheetCheck(имя_листа как строка) Как логическое значение
Dim ws As рабочий лист
ЛистПроверка = ЛожьДля каждого ws в ThisWorkbook.