Миф 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.Add Type:=xlChart

‘Добавление нового листа перед

‘последним листом рабочей книги

Sheets.Add Before:=Sheets(Sheets.Count)

‘Добавление нового листа в конец

Sheets.Add After:=Sheets(Sheets.Count)

  • Лист1 в After:=Лист1 — это уникальное имя листа, указанное в проводнике редактора VBA без скобок.
  • Лист1 в After:=Worksheets(«Лист1») — это имя на ярлыке листа, указанное в проводнике редактора VBA в скобках.

Создаваемый лист можно присвоить объектной переменной:

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.Name

‘Очищаем переменную

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.Worksheets.Copy

* Если при копировании в новую книгу нескольких листов хотя бы один лист содержит умную таблицу — копирование невозможно. Один лист, содержащий умную таблицу, копируется в новую книгу без проблем.

Если рабочие книги указаны как элементы коллекции 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» в позицию перед листом, указанным как по порядковому номеру, так и по имени ярлыка:

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.Delete

‘По имени на ярлычке

Worksheets(«Лист1»).Delete

‘По индексу листа

Worksheets(1).Delete

‘В другой книге

Workbooks(«Книга1.xlsm»).Worksheets(«Лист1»).Delete

Если рабочие книги указаны как элементы коллекции Workbooks, в том числе ActiveWorkbook и ThisWorkbook, листы нужно указывать как элементы коллекции Worksheets, использование уникальных имен вызовет ошибку.

Как обратиться к рабочему листу, переименовать, скрыть или отобразить его с помощью кода VBA Excel, смотрите в этой статье.

In this guide, we’re going to show you how to create and name a worksheet with VBA in Excel.

Download Workbook

Syntax

You can create and name a worksheet using the Sheets.Add and Worksheets.Add methods. Both methods work similarly and have 4 optional arguments and return a sheet object which can take a Name property.

Sheets.Add ([Before], [After], [Count], [Type])

Worksheets.Add ([Before], [After], [Count], [Type])

Name Description
Before Optional. The sheet before which the new sheet is to be added.
If omitted, Excel creates the new sheet(s) before the selected sheet(s).
After Optional. The sheet after which the new sheet is added.
If omitted, Excel creates the new sheet(s) before the selected sheet(s).
Count The number of sheets to be added.
The default is the number of selected sheets.
Type Specifies the sheet type.
The default is xlWorksheet which represents a standard worksheet.

Adding a single sheet

All arguments are optional. The method without arguments creates worksheet(s) equal to the number of selected worksheets before the first selected worksheet.

Sheets.Add

For example, if two sheets are selected, the method will add two worksheets. To ignore the selected sheets and set the sheet number to one (1), use 1 for the Count argument.

Sheets.Add Count:=1

Adding multiple sheets

You can set the Count argument to an integer greater than 1 to add multiple sheets at once. For example, the following code adds three (3) worksheets.

Sheets.Add Count:=3

Adding a sheet with a name

Sheets.Add method returns a sheet object and sets its name by updating the Name property. A property is an attribute of object that determines one of the object’s characteristics. The property of an object is addressed by entering the property name after the corresponding object and a dot(.). Just like calling the Add method for the Sheets object.

If all you need is to create worksheets and name them regardless of their position, use one of the following code lines.

Sheets.Add.Name = “My Sheet”
Sheets.Add(Count:=1).Name = “My Sheet” ‘Use this line to ensure creating a single sheet

Adding a sheet before or after a specific sheet

If the new sheet’s position is important, use either the Before or After argument. Each argument accepts a sheet object. The new sheet will be created before or after the sheet you supplied based on the argument you are using.

You can call a sheet object by giving the sheet’s name or index to Sheets or Worksheets objects. It can be a variable which you have defined. Here are some examples:

Sheets.Add Before:=Worksheets("My Sheet") ‘Add sheet(s) before “My Sheet”
Sheets.Add After:=Worksheets(3) ‘Add sheet(s) after the third sheet
Dim ws As Worksheet ‘Define a new worksheet object
Set ws = Sheets.Add ‘Create and assign new sheet to the worksheet object
Sheets.Add After:=ws ‘Add a new sheet after the recently added sheet (ws)

Creating and naming multiple worksheets

To name multiple worksheets, you have to use an array of names and a loop. Let’s say you have names in a range like A1:A5 in the worksheet named “Sheet1”. A loop should check each cell inside the range and create a worksheet from the corresponding name. Check out the following code:

 Sub CreateAndNameMultipleSheets()
    Dim rng As Range 'Range object which defines a cell
    For Each rng In Sheets("Sheet1").Range("A1:A5")
        Sheets.Add.Name = rng.Value
    Next
End Sub

This is our last tip for how to create and name a worksheet with VBA in Excel article. If you are new to loops in VBA, check out All You Need to Know on How to Create a VBA loop in Excel to understand and find more ways of looping.

Skip to content

Как добавить новый лист и присвоить имя

На чтение 2 мин. Просмотров 6.9k.

Что делает макрос: Самый простой вариант автоматизации — добавить новый лист с присвоением ему конкретного имени.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как работает макрос
  4. Как использовать

Как макрос работает

Если вы владеете минимальными знаниями английского, то поймете, как работает этот макрос без подсказок.

Код макроса

Sub DobavitNoviiList()
'Шаг 1: Говорим Excel, что делать, если ошибка
On Error GoTo MyError
'Шаг 2: Добавляем лист
Sheets.Add
'Шаг 3: Присваиваем имя
ActiveSheet.Name = "Отчет"_
WorksheetFunction.Text(Now(),"yyyy")
'Шаг 4: Выходим
Exit Sub
'Шаг 5: Если произошла ошибка, сообщение пользователю
MyError:
MsgBox "Лист с таким именем уже есть!"
End Sub

Как работает макрос

  1. Вы знаете, что если присвоить новому листу имя, которое уже есть, то возникнет ошибка. Таким образом, на шаге 1, макрос говорит Excel немедленно перейти к строке, которая говорит MyError (на шаге 3), если есть ошибка.
  2. Для создания листа используем метод Add. По умолчанию, лист называется SheetХХ, где хх представляет число листа. Мы даем листу новое имя путем изменения свойства объекта ActiveSheet.Name в этом случае мы именуем рабочий лист «Отчёт и текущий год».
  3. Как и в рабочих книгах, каждый раз, когда вы добавляете новый лист с помощью VBA, он автоматически становится активным. Именно поэтому мы пишем ActiveSheet.Name.
  4. Обратите внимание, что на шаге 4 мы выходим из процедуры. Делаем так, чтобы он случайно не показал сообщение об ошибке.
  5. Данный шаг запускается, если имя нового листа совпадает с уже существующим в книге. С помощью сообщения уведомляем пользователя об этом. Опять же, этот шаг должен быть выполнен только в случае возникновения ошибки.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код во вновь созданном модуле.

Работа в Excel — это всегда работа с листами.

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

При открытии нового документа Excel, изначально в нем есть всего один лист. В предыдущих сборках Excel (2013 — 2016) этих листов было 3.

Существует такое понятие, как «горячие клавиши», они помогут вам быстро создавать новые листы в одном и том же файле Excel.

Эта статья призвана помочь вам и рассказать способы, существенно упрощающие создание новых листов в файле Excel.

Также продемонстрирую метод быстрого массового создания листов, например когда необходимо добавить сразу 30, 40 за один раз (используя Visual Basic).

Что ж, давайте приступим!

В этом уроке рассматриваются:

  • Горячие клавиши для создания листа;
  • Вставка листа, используя знак «+»;
  • Добавление листа используя окно «Вставка»;
  • Создание листов путем использования функции «Вставка» в меню;
  • Массовая вставка листов (используя Visual Basic);
  • Редактирование стандартного параметра «Число листов».

Содержание

  1. Горячие клавиши для создания листа
  2. Вставка листа используя знак «+»
  3. Добавление листа используя окно «Вставка»
  4. Создание листов путем использования функции «Вставка» в меню
  5. Массовая вставка листов (используя Visual Basic)
  6. Подробные пошаговые действия для использования:
  7. Редактирование стандартного параметра «Число листов»

Горячие клавиши для создания листа

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

Далее продемонстрированы горячие клавиши для создания листа:

SHIFT + F11

Быстрая клавиша для добавления нового листа

Чтобы использовать это сочетание клавиш, зажмите кнопку SHIFT и после нажмите клавишу F11.

Другой вариант горячих клавиш, выполняющий эту же функцию — ALT + SHIFT + F1 (зажмите кнопки ALT и SHIFT и нажмите клавишу F1).

На мой взгляд, использование горячих клавиш — самый эффективный и быстрый вариант создать новый лист в Excel. Даже в той ситуации, когда нужно создать сразу несколько листов (например, 15, 20). Все равно благодаря этому методу можно делать это очень быстро!

Вставка листа используя знак «+»

В случае если, вам не по душе «горячие клавиши», а наоборот, больше предпочитаете мышь, то вам понравится следующий вариант. В нижней части окна Excel (где написаны названия всех листов) находится знак «+».

При нажатии на него, программа сразу же создаст новый лист.

Добавьте лист через знак «+»

Добавление листа используя окно «Вставка»

Вот еще один вариант создать новый лист в Excel — использование окна «Вставка». Далее описаны пошаговые действия:

  1. Нажмите правой кнопкой мышки на иконку любой из существующих страниц;
  2. Выберите функцию «Вставить»;

Вставка листа через опцию «Вставить»

3. В открывшемся окне проверьте, что объект “Лист” выделен (стандартный вариант);

Меню добавления и вставки листа

4. Подтвердите.

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

Помимо добавления обычного листа, можно использовать этот способ для создания «Листа макросов» и «Листа диаграмм» при помощи окна «Вставка».

На будущее, «Лист макросов» на данный момент стал пережитком прошлого, им пользовались ранее, до появления Visual Basic. А «Лист диаграмм» это такая же страница, как и обычный лист, только она хранит в себе диаграммы.

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

Еще во «Вставке» есть кнопка «Решения», где содержатся готовые шаблоны листов. Также здесь можно выбирать свои уже готовые макеты страниц, которые вы создали. Поэтому, если в будущем, вам понадобится использовать готовый макет листа, можно открыть его из данной вкладки.

Создание листов путем использования функции «Вставка» в меню

Напоследок, в меню Excel также можно использовать функцию «Вставка».

Чтобы её использовать:

1. Откройте раздел «Главная»;

Открываем меню «Главная»

2. В разделе Ячейки откройте функцию «Вставить»;

Опция «Вставить»

3. Используйте «Вставить лист».

Главная → Вставить → Вставить лист

Эта функция создаст один лист.

Массовая вставка листов (используя Visual Basic)

Все рассмотренные ранее методы позволяли создать лишь один лист за раз.

Если вам нужно создать сразу несколько новых листов, вам необходимо будет эксплуатировать эти способы несколько раз (грубо говоря, нажимать горячие клавиши или нажимать на знак «+» столько раз, сколько необходимо создать новых страниц).

Если количество листов до 10, то это не сложно и нет особого смысла использовать более сложные методы, но если нужно создать большое количество страниц, например, 40, 50, то это не очень то и удобно.

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

Мы будем делать это используя данный код для Visual Basic в Excel:

Sheets.Add Count:=25

Данная функция буквально за секунду создаст 25 новых листов в файле Excel (можно создать любое число страниц, для этого поменяйте цифру «25» в функции).

Подробные пошаговые действия для использования:

1. Нажмите на раздел «Разработчик»;

  1. Откройте функцию «Visual Basic» (можно открыть с помощью горячих клавиш ALT + F11);

Переходим в режим разработчика

3. Не видите окна «Immediate» в редакторе? Тогда нажмите на вкладку «View» и после нажмите «Immediate Window» (можно открыть с помощью горячих клавиш CTRL + G);

Открываем окно «Immediate Window»

4. Пропишите в строке формулу, написанную нами ранее;

Добавляем функцию Sheets

5. Наведите указатель мышки в конец самой функции и нажмите «Enter».

Когда вы подтвердите выполнение, функция сразу же создаст 25 рабочих листов. Когда будет необходимо создать еще (40 или 50), поменяйте «25» на нужную цифру.

Достоинство данного метода в том, что функция создаст ровно то количество листов, которое вы указали цифрой. Ошибка здесь исключена.

Если необходимо создавать большое количество листов постоянно, то можно выполнить приведенную далее функцию и поместить её в «Personal Macro».

Sub AddSheets()
Sheets.Add Count:=25
End Sub

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

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

Редактирование стандартного параметра «Число листов»

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

Например, можно изменить параметр таким образом, чтобы при создании каждого нового документа Excel всегда было 15, 20 листов.

Далее пошагово описаны действия для изменения этой настройки:

1. Откройте раздел «Файл»;

Переходим в раздел «Файл»

2. Откройте окно «Параметры»;

3. В открывшемся окне «Параметры Excel» у вас должен быть выбран раздел «Общие»;

Общие парамерты

4. В параметре «Число листов» укажите количество;

Увеличить количество листов при создании книги

5. Подтвердите.

Сейчас, если откроете только созданный документ, в нем сразу будет нужное вам число рабочих листов.

Не забудьте, максимум в документе может быть 255 листов.

Я продемонстрировал существующие методы для создания новых листов в Excel. Чаще всего, в процессе работы, необходимо создавать небольшое количество рабочих листов. Если так, то удобнее всего будет пользоваться горячими клавишами или знаком «+».

Когда необходимо создать большое количество листов, пользуйтесь вариантом с Visual Basic. Также, можно просто поменять стандартное число листов при создании новых документов Excel.

Надеюсь вам помогло данное руководство!

Автор: Sumit Bansal

Перевод: редакция ExcelExcel.ru

danny41

1 / 1 / 0

Регистрация: 14.06.2011

Сообщений: 71

1

Как создать новый лист и импортировать данные с другого листа на новый лист

07.07.2011, 08:42. Показов 8325. Ответов 4

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

как создать новый лист и импортировать данные с другого листа на новый лист.

Visual Basic
1
2
3
4
5
6
Private Sub CommandButton1_Click()
 
' Создание рабочего листа
With ThisWorkbook.Sheets
     .Add Type:=xlWorksheet
End With



0



Gibboustooth

735 / 203 / 11

Регистрация: 23.06.2011

Сообщений: 440

07.07.2011, 09:44

2

Visual Basic
1
[лист, с которого копируют].Copy After:=[Книга].Sheets([Книга].Sheets.Count)

Вставит новый лист в конце книги.



1



danny41

1 / 1 / 0

Регистрация: 14.06.2011

Сообщений: 71

07.07.2011, 11:19

 [ТС]

3

Цитата
Сообщение от Gibboustooth
Посмотреть сообщение

Visual Basic
1
[лист, с которого копируют].Copy After:=[Книга].Sheets([Книга].Sheets.Count)

Вставит новый лист в конце книги.

[лист, с которого копируют] писать название книги.xls и [Книга].Sheets([Книга].Sheets.Count) <- писать название куда копировать книги.xls

и куда ставлять этот код?

Добавлено через 1 час 30 минут
и куда ставлять этот код?



0



695 / 236 / 18

Регистрация: 17.01.2011

Сообщений: 583

Записей в блоге: 1

07.07.2011, 12:21

4

Включи запись макроса и запиши код..



1



Gibboustooth

735 / 203 / 11

Регистрация: 23.06.2011

Сообщений: 440

07.07.2011, 12:27

5

Цитата
Сообщение от danny41
Посмотреть сообщение

[лист, с которого копируют] писать название книги.xls и [Книга].Sheets([Книга].Sheets.Count) <- писать название куда копировать книги.xls

Нет, там должна быть переменная листа, а книга — должна быть переменная книги.

Чтобы задать переменные сделайте:

Visual Basic
1
2
3
4
5
Dim [имя переменной книги] as Workbook
Dim [Имя переменной листа] as WorkSheet
 
Set [Имя переменной книги]=Activeworkbook
Set [Имя переменной листа]=[Имя переменной книги].Worksheets([Имя (в кавычках) или номер листа в книге])



1



Like this post? Please share to your friends:
  • Миф excel with описание
  • Миф excel как выделить ячейку
  • Миф excel with listbox
  • Миф excel как выделить диапазон
  • Миф excel with application