Создать несколько листов excel vba

Как создать несколько листов из списка значений ячеек?

Есть ли какие-нибудь быстрые или простые методы для создания нескольких рабочих листов на основе списка значений ячеек в Excel? В этой статье я расскажу о некоторых хороших приемах для решения этой задачи.

Создайте несколько листов из списка значений ячеек с кодом VBA

Создайте несколько рабочих листов из списка значений ячеек с помощью Kutools for Excel


стрелка синий правый пузырь Создайте несколько листов из списка значений ячеек с кодом VBA

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

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.

Код VBA: создание нескольких листов из списка ячеек:

Sub AddSheets()
'Updateby Extendoffice
    Dim xRg As Excel.Range
    Dim wSh As Excel.Worksheet
    Dim wBk As Excel.Workbook
    Set wSh = ActiveSheet
    Set wBk = ActiveWorkbook
    Application.ScreenUpdating = False
    For Each xRg In wSh.Range("A1:A7")
        With wBk
            .Sheets.Add after:=.Sheets(.Sheets.Count)
            On Error Resume Next
            ActiveSheet.Name = xRg.Value
            If Err.Number = 1004 Then
              Debug.Print xRg.Value & " already used as a sheet name"
            End If
            On Error GoTo 0
        End With
    Next xRg
    Application.ScreenUpdating = True
End Sub

Внимание: В приведенном выше коде A1: A7 — это диапазон ячеек, на основе которого вы хотите создать листы, измените его по своему усмотрению.

3, Затем нажмите F5 ключ для запуска этого кода, и новые листы были созданы после всех листов в текущей книге, см. снимок экрана:

документ создать несколько листов 1


стрелка синий правый пузырь Создайте несколько рабочих листов из списка значений ячеек с помощью Kutools for Excel

Если вы не знакомы с приведенным выше кодом, вот удобный инструмент:Kutools for Excel, С его Создать рабочие листы последовательностей , рабочие листы будут созданы на основе значений ячеек в новой книге.

После установки Kutools for Excel, пожалуйста, сделайте так:

1. Нажмите Кутулс Плюс > Рабочий лист > Создать рабочие листы последовательностей, см. снимок экрана:

2. В Создать рабочие листы последовательностей диалоговое окно:

(1.) Выберите один рабочий лист, на основе которого вы хотите создать рабочие листы последовательности;

(2.) Затем выберите Данные в варианте диапазона от Имена листов на основе список и щелкните документ создать несколько листов 4 кнопку, чтобы выбрать значения ячеек, которые вы хотите использовать.

документ создать несколько листов 3

3, Затем нажмите Ok , рабочие листы были созданы с именами значений ячеек в новой книге, см. снимок экрана:

документ создать несколько листов 5

Нажмите «Загрузить и получить бесплатную пробную версию». Kutools for Excel от Yhao сейчас!


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (16)


Оценок пока нет. Оцените первым!

Создание, копирование, перемещение и удаление рабочих листов 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.

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

добрый день . подскажите пожалуйста, как решить данный вопрос. было задание:Написать макрос , добавляющий к имеющимся 3 листам еще 5 листов и закрашивающий все 8 листов в различные базовые цвета, выдавая перед каждой окраской информационное сообщение с названием цвета листа. с этим я справилась, НО еще надо сделать так, чтобы если вторично запустить макрос, то больше листы не добавлялись. как это сделать не могу сообразить.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Public Sub закраска_листа()
' добавляем 5 листов
For i = 1 To 5
    With New_Ex
    Sheets.Add After:=Sheets(Sheets.Count)
    End With
Next i
'все 8 листов раскрасить в различные базовые цвета выдавая перед oкраской сообщение
Worksheets(1).Select
With Cells
    .Interior.ColorIndex = 1
     MsgBox ("черный")
    End With
Worksheets(2).Select
With Cells
    .Interior.ColorIndex = 2
     MsgBox ("белый")
    End With
     Worksheets(3).Select
With Cells
    .Interior.ColorIndex = 3
     MsgBox ("красный")
    End With
Worksheets(4).Select
With Cells
    .Interior.ColorIndex = 4
     MsgBox ("зеленый")
    End With
Worksheets(5).Select
With Cells
    .Interior.ColorIndex = 5
     MsgBox ("синий")
    End With
Worksheets(6).Select
With Cells
    .Interior.ColorIndex = 6
     MsgBox ("желтый")
    End With
Worksheets(7).Select
With Cells
    .Interior.ColorIndex = 7
     MsgBox ("фиолетовый")
    End With
Worksheets(8).Select
With Cells
    .Interior.ColorIndex = 8
     MsgBox ("бирюзовый")
    End With
 
 
End Sub

Создание листов с именами из диапазона ячеек

Uliana

Дата: Пятница, 22.03.2013, 00:12 |
Сообщение № 1

Как создать листы в книге,имена которых брались бы из ячеек этой же книги?Список имен храниться в ячейках и может изменяться(увеличиваться/уменьшаться). Очень нужна помощь.

 

Ответить

Serge_007

Дата: Пятница, 22.03.2013, 00:17 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Uliana

Дата: Пятница, 22.03.2013, 09:07 |
Сообщение № 3

Что макросом, понятно. По его содержанию вопросы.В примерах по ссылке,к сожалению,нужного нет. Там цикл for получается будет двойным, один-по листам, другой-по ячейкам. Так?

 

Ответить

Матраскин

Дата: Пятница, 22.03.2013, 09:21 |
Сообщение № 4

Группа: Друзья

Ранг: Обитатель

Сообщений: 375


Репутация:

81

±

Замечаний:
0% ±


20xx

Uliana, одного цикла и одного условия достаточно. Бежим по ячейкам циклом for или while, и проверяем, если такой лист в книге. Если нет -> создаём, если есть -> следующая ячейка.


в интернете опять кто-то не прав

Сообщение отредактировал МатраскинПятница, 22.03.2013, 09:22

 

Ответить

Uliana

Дата: Пятница, 22.03.2013, 09:34 |
Сообщение № 5

Если несложно,набросайте в коде,пожалуйста. В программировании не сильна,увы.

 

Ответить

Матраскин

Дата: Пятница, 22.03.2013, 10:20 |
Сообщение № 6

Группа: Друзья

Ранг: Обитатель

Сообщений: 375


Репутация:

81

±

Замечаний:
0% ±


20xx

Uliana,
единственная проблема, имена из одних цифр. Они что-то выпендриваются. У вас будут имена из них???
P.s. начал делать макрос и вспомнил о своём посте выше, как же… dry

К сообщению приложен файл:

macro.xlsm
(28.6 Kb)


в интернете опять кто-то не прав

Сообщение отредактировал МатраскинПятница, 22.03.2013, 10:26

 

Ответить

Uliana

Дата: Пятница, 22.03.2013, 10:30 |
Сообщение № 7

Имена представляют собой ФИО студентов,цифры вряд ли появятся вообще. Вобщем,если конкретнее,смысл таков. Имеется список студентов,имеется кнопочка типа «создать листы»,после нажатия на которую появятся листы, имена и количество которых будет соответствовать списку студентов. Пока список фиксирован, о динамике (удаление или добавление студента, а соответственно и листа) речи пока не идет.

 

Ответить

Матраскин

Дата: Пятница, 22.03.2013, 10:34 |
Сообщение № 8

Группа: Друзья

Ранг: Обитатель

Сообщений: 375


Репутация:

81

±

Замечаний:
0% ±


20xx

Uliana, ну значит забирайте happy


в интернете опять кто-то не прав

 

Ответить

Uliana

Дата: Пятница, 22.03.2013, 10:47 |
Сообщение № 9

Ох,спасибо! Даже почти все понятно)Единственное,для чего нужен Module2?

 

Ответить

Матраскин

Дата: Пятница, 22.03.2013, 10:49 |
Сообщение № 10

Группа: Друзья

Ранг: Обитатель

Сообщений: 375


Репутация:

81

±

Замечаний:
0% ±


20xx

Uliana, его можно удалить! я вспоминал макродёром, как добавить лист с именем


в интернете опять кто-то не прав

 

Ответить

AlexM

Дата: Пятница, 22.03.2013, 11:09 |
Сообщение № 11

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

А если код покороче
[vba]

Код

Sub Macros()
Application.ScreenUpdating = False
Dim i As Long
For i = 1 To Sheets(«1»).Columns(1).End(xlDown).Row
     On Error Resume Next
     Sheets(Range(«A» & i)).Select
     If Err Then
         Sheets.Add After:=Sheets(Sheets.Count)
         ActiveSheet.Name = Sheets(«1»).Range(«A» & i)
     End If
Next i
Worksheets(«1»).Activate
Application.ScreenUpdating = True
End Sub

[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

Матраскин

Дата: Пятница, 22.03.2013, 11:20 |
Сообщение № 12

Группа: Друзья

Ранг: Обитатель

Сообщений: 375


Репутация:

81

±

Замечаний:
0% ±


20xx

AlexM, короче но не лучше, надо доделать.
1.если ничего не добавлять в столбец и жать на кнопку будут добавляться просто дефолтные листы в кол-ве записей в столбце…зачем они
2.если нет данных в столбце вообще, то макрос зацикливается
3. интересно, что если добавить в столбец имя из 1 буквы то тоже всё зацикливается


в интернете опять кто-то не прав

 

Ответить

Alex_ST

Дата: Пятница, 22.03.2013, 11:56 |
Сообщение № 13

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

[offtop]Ребята, ну сколько можно нарушителям правил помогать?
Ведь Серж же вполне ясно в своём ответе намекнул, что пока не будет примера, будут только ответы общего плана.
Я тоже утром посмотрел и решил подождать реакции топик-стартера…
А вы вдруг взялись играть в «угадайку», не зная ни структуры таблиц, ни названий листов…
Ну, флаг вам в руки. Гадайте дальше.[/offtop]



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

AlexM

Дата: Пятница, 22.03.2013, 13:05 |
Сообщение № 14

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Цитата (Матраскин)

короче но не лучше, надо доделать

Спасибо за замечание. Код поправил. Вроде нет описанных глюков.
[vba]

Код

Sub Macros()
Application.ScreenUpdating = False
Dim i As Long
For i = 1 To Sheets(«1»).Range(«A» & Rows.Count).End(xlUp).Row
      On Error Resume Next
      Sheets(Sheets(«1»).Range(«A» & i).Value).Select
      If Err And Sheets(«1»).Range(«A» & i) <> «» Then
          Sheets.Add After:=Sheets(Sheets.Count)
          ActiveSheet.Name = Sheets(«1»).Range(«A» & i)
      End If
Next i
Worksheets(«1»).Activate
Application.ScreenUpdating = True
End Sub

[/vba]

К сообщению приложен файл:

1325074.xls
(27.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

Сообщение отредактировал AlexMПятница, 22.03.2013, 20:37

 

Ответить

aphome

Дата: Четверг, 20.06.2013, 16:14 |
Сообщение № 15

Группа: Пользователи

Ранг: Прохожий

Сообщений: 2


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Форумчане, подскажите, пожалуйста, код макроса, который также создает листы с именами из списка, но по шаблону.
Есть лист «ФИО» и лист «Шаблон». Макрос должен создать листы с именами из диапазона (стобец А) на листе «ФИО», причем все созданные листы должны содержать данные из листа «Шаблон».
пример прикрепляю. сгенерироваться должны листы, обозначенные зелеными ярлыками.

К сообщению приложен файл:

aphome.xlsx
(12.7 Kb)

Сообщение отредактировал aphomeЧетверг, 20.06.2013, 16:22

 

Ответить

Формуляр

Дата: Четверг, 20.06.2013, 17:01 |
Сообщение № 16

Группа: Друзья

Ранг: Ветеран

Сообщений: 832


Репутация:

255

±

Замечаний:
0% ±


Excel 2003, 2013

Вместо добавления листа используйте копирование

[vba]

Код

Sub Macros()
  Application.ScreenUpdating = False
Dim i As Long
For i = 1 To Sheets(«ФИО»).Range(«A» & Rows.Count).End(xlUp).Row
      On Error Resume Next
      Sheets(Sheets(«ФИО»).Range(«A» & i).Value).Select
      If Err And Sheets(«ФИО»).Range(«A» & i) <> «» Then
          ‘Sheets.Add After:=Sheets(Sheets.Count)
          Sheets(«Шаблон»).Copy After:=Sheets(Sheets.Count)
          ActiveSheet.Name = Sheets(«ФИО»).Range(«A» & i)
      End If
Next i
  Worksheets(«ФИО»).Activate
  Application.ScreenUpdating = True
End Sub

[/vba]


Excel 2003 EN, 2013 EN

 

Ответить

aphome

Дата: Четверг, 20.06.2013, 17:24 |
Сообщение № 17

Группа: Пользователи

Ранг: Прохожий

Сообщений: 2


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Цитата (Формуляр)

Вместо добавления листа используйте копирование

Спасибо

 

Ответить

malll

Дата: Вторник, 04.04.2017, 10:20 |
Сообщение № 18

Группа: Пользователи

Ранг: Прохожий

Сообщений: 1


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Sub Macros()
Application.ScreenUpdating = False
Dim i As Long
For i = 1 To Sheets(«ФИО»).Range(«A» & Rows.Count).End(xlUp).Row
    On Error Resume Next
    Sheets(Sheets(«ФИО»).Range(«A» & i).Value).Select
    If Err And Sheets(«ФИО»).Range(«A» & i) <> «» Then
        ‘Sheets.Add After:=Sheets(Sheets.Count)
        Sheets(«Шаблон»).Copy After:=Sheets(Sheets.Count)
        ActiveSheet.Name = Sheets(«ФИО»).Range(«A» & i)
    End If
Next i
Worksheets(«ФИО»).Activate
Application.ScreenUpdating = True
End Sub

А как теперь создать гиперссылки на эти листы. Какую команду прописать? Чтоб при нажатии на листе «ФИО» на определенную ячейку, автоматически переходило на одноименный лист.

 

Ответить

_Boroda_

Дата: Вторник, 04.04.2017, 10:21 |
Сообщение № 19

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Создать несколько копий одного листа в excel
  • Создать нейросеть в excel
  • Создать на рабочем столе папку а в ней текстовый документ microsoft word
  • Создать листы таблице word
  • Создать мой стиль в word 2007