Vba excel создать лист если его нет

 

VLad777

Пользователь

Сообщений: 5018
Регистрация: 22.12.2012

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

 

VLad777

Пользователь

Сообщений: 5018
Регистрация: 22.12.2012

Модераторы прошу прощения. У меня васкакивала ошибка после которой я не проверяя создавал тему — поэтому похоже их так много получилось. Удалите пожалуйста две предыдущее. Эту оставьте.  
Заранее Спасибо.

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

Как-то так:  
Private Sub Workbook_SheetActivate(ByVal Sh As Object)  
   Dim sheet As Worksheet  
   Dim cell As Range  
   Dim sName As String ‘Создаём переменную, в которую поместим имя листа.  
   sName = «Листы» ‘Помещаем в переменную имя листа  
   Application.EnableEvents = 0  
   On Error Resume Next  
   If Worksheets(sName) Is Nothing Then  ‘действия, если листа нет  
       Worksheets.Add.Name = «Листы»  
   End If  
   Worksheets(«Листы»).UsedRange.ClearContents  
   With ActiveWorkbook  
       For Each sheet In ActiveWorkbook.Worksheets  
           Set cell = Worksheets(1).Cells(sheet.Index, 1)  
           .Worksheets(1).Hyperlinks.Add anchor:=cell, Address:=»», SubAddress:=»‘» & sheet.Name & «‘» & «!A1»  
           cell.Formula = sheet.Name  
       Next  
   End With  
   Application.EnableEvents = -1  
End Sub

Я сам — дурнее всякого примера! …

 

VLad777

Пользователь

Сообщений: 5018
Регистрация: 22.12.2012

#4

02.10.2012 11:39:05

Спасибо. Тема закрыта.

 Как создать лист, если его нет в книге?

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

Создайте лист, если его нет в книге с кодом VBA


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

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

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

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

Код VBA: создайте лист, если его нет в книге:

Sub TestSheetCreate()
'Updateby Extendoffice
    Dim newSheetName As String
    Dim checkSheetName As String
    newSheetName = Application.InputBox("Input Sheet Name:", "Kutools for Excel", _
                                    "sheet4", , , , , 2)
    On Error Resume Next
    checkSheetName = Worksheets(newSheetName).Name
    If checkSheetName = "" Then
        Worksheets.Add.Name = newSheetName
        MsgBox "The sheet named ''" & newSheetName & _
        "'' does not exist in this workbook but it has been created now.", _
        vbInformation, "Kutools for Excel"
        
    Else
        MsgBox "The sheet named ''" & newSheetName & _
        "''exist in this workbook.", vbInformation, "Kutools for Excel"
    End If
End Sub

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

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

4. Затем нажмите OK Кнопка:

(1.) Если лист существует, появится всплывающее окно с напоминанием, как показано на следующем снимке экрана:

документ создать лист, если не существует 2

(2.) Если лист не существует, он будет создан сразу, см. Снимок экрана:

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


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

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

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

вкладка kte 201905


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

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

офисный дно

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


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

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

Содержание

  1. Создание или замена листа
  2. Определение наличия листа
  3. Создание листа
  4. Замена листа
  5. Об участнике
  6. Поддержка и обратная связь
  7. Удалить лист, если он существует, и создать новый
  8. Безопасное удаление листа
  9. Удалить & Заменить лист
  10. О ThisWorkbook :
  11. How to Write a VBA Code to Create a New Sheet in Excel (Macro)
  12. Sheets.Add Method
  13. Write a VBA Code to ADD a New Sheet in a Workbook
  14. Different Ways to Add New Sheets in a Workbook using a VBA Code
  15. 1. Add a Single Sheet
  16. 2. Add Multiple Sheets
  17. 3. Add a Sheet with a Name
  18. 4. Add a Sheet with a Name from a Cell
  19. 5. Add a Sheet After/Before a Specific Sheet
  20. 6. Add a New Sheet at Beginning
  21. 7. Add a New Sheet at the End (After the Last Sheet)
  22. 8. Add Multiple Sheets and use Names from a Range

Создание или замена листа

В следующих примерах показано, как определить, существует ли лист, а затем создать или заменить его.

Пример кода предоставил: Том Уртис, Atlas Programming Management

Определение наличия листа

В этом примере показано, как определить, существует ли лист с именем Sheet4 с помощью свойства Name объекта Worksheet . Имя листа задается переменной mySheetName .

Создание листа

В этом примере показано, как определить, существует ли лист с именем Sheet4. Имя листа задается переменной mySheetName . Если лист не существует, в этом примере показано, как создать лист с именем Sheet4 с помощью метода Add объекта Worksheets .

Замена листа

В этом примере показано, как определить, существует ли лист с именем Sheet4. Имя листа задается переменной mySheetName . Если лист существует, в этом примере показано, как удалить существующий лист с помощью метода Delete объекта Worksheet , а затем создать новый лист с именем Sheet4.

Важно При удалении листа удаляются все данные на исходном листе с именем Sheet4.

Об участнике

Том Уртис, MVP — основатель компании Atlas Programming Management, создающей полноценные бизнес-решения для Microsoft Office и Excel в Кремниевой долине. Том обладает больше чем 25 годами опыта управления бизнесом и разработки приложений для Microsoft Office, а также является соавтором книги «Holy Macro! It’s 2,500 Excel VBA Examples».

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Удалить лист, если он существует, и создать новый

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

Однако это не делает оба эти действия за один прогон кода. Если лист уже существует, он просто удалит лист и не создаст новый, как я хочу. Мне нужно запустить его снова, чтобы создать новый.

Как мне исправить мой код, чтобы удалить старый лист, если он существует, и создать новый?

Удалите оператор End , ваш код прекращает работу после поиска и удаления листа asdf .

Вместо прохождения Worksheets вы можете проверить наличие элемента в коллекции, попробовав и получив его:

Однако самый простой способ – попытаться удалить лист, когда он обернут в “блок” On Error Resume Next – On Error GoTo 0 :

Я не согласен с тем, что “самый простой” подход заключается в намеренном генерировании (и подавлении) ошибки. Лично я бы выбрал метод loop-to-locate, только пытаясь удалить его, если объект существует.

Если вы все равно собираетесь заново создавать рабочий лист, это подойдет практически во всех случаях:

Безопасное удаление листа

Если однострочник (выше) не работает для вас (возможно, из-за некоторых упрямых цветов фона/изображений), то здесь подпункт, который вы можете вызвать, чтобы удалить любой указанный лист:

Назовите это просто как:

… где asdf – это имя листа (вкладки), который нужно удалить.

Удалить & Заменить лист

Кроме того, вызов подпункта ниже приведет к удалению и замене листа, присвоив ему то же имя и поместив его в ту же позицию вкладки, что и оригинал:

О ThisWorkbook :

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

Использование ThisWorkbook гарантирует, что ваш код всегда ссылается на книгу, в которой находится код, который его вызвал.

Без этого, например, если у вас открыты два одинаковых файла, и вы смотрите один, ожидая запуска VBA в другой книге, если в книге, которая “сверху”, есть лист с именем тот VBA, который пытается удалить, удалит лист в текущей (активной) книге вместо намеченной.

(… и вы не можете Ctrl + Z отменить VBA!)

Источник

How to Write a VBA Code to Create a New Sheet in Excel (Macro)

Once you start learning VBA one of the coolest things you can do is to write a VBA code to insert new a worksheet in a workbook.

Well, there is already a shortcut key to insert a new worksheet or you can also use the normal option but the benefit of using a VBA code is you can add multiple worksheets with a single click and you can also define that where you want to add it.

For this, you need to use the Sheets.Add method, and in this post, we will be learning how to use it to add one or more worksheets in a workbook.

Sheets.Add Method

  • Before: To add a new sheet before a sheet.
  • After: To add the new sheet before a sheet.
  • Count: Number of sheets to add.
  • Type: Type of the sheet you want to add (LINK)

Write a VBA Code to ADD a New Sheet in a Workbook

Open the visual basic editor and follow these steps.

  • First, you need to enter Sheets.Add method.
  • Then you need to define the place to add the new sheet (Before or After).
  • Next thing is to enter the count of worksheets.
  • In the end, the type of sheet.

Different Ways to Add New Sheets in a Workbook using a VBA Code

Below you have different ways to add a new sheet to a workbook:

1. Add a Single Sheet

To add a single sheet, you can use the below code, where you didn’t specify any argument.

This code tells Excel to add a sheet in the active workbook, but as you don’t have any argument it will use the default values and add one worksheet(xlWorksheet) before the active sheet.

Here’s one more way to write this, check out the below code.

As you are already in the active workbook you can use the below code as well. It does the same thing.

2. Add Multiple Sheets

To add multiple sheets in one go, you just need to define the COUNT argument with the number of sheets you want to add.

Now the count of the sheets that you have defined is 5, so when you run this code it instantly adds the five new sheets in the workbook.

3. Add a Sheet with a Name

If you want to rename the sheet after adding it, you can use the following code:

In the above code, we have used the name object (LINK) which helps you to specify the name of a sheet.

4. Add a Sheet with a Name from a Cell

You can also take the value to use as the sheet’s name from a cell.

In the above code, cell A1 is used to get the name for the new sheet.

5. Add a Sheet After/Before a Specific Sheet

As these arguments are already there in the Sheets.Add where you can specify the sheet to add a new sheet before or after it.

Now in the above code, you have two lines of code that you have used before and after an argument in the Sheet.Add method. So, when you run this code it adds two sheets one is before and one is after the “mySheet”.

6. Add a New Sheet at Beginning

By using the before argument using you can also add a sheet at the beginning of the sheets that you have in the workbook.

So basically, what we are going to do is we’re going to specify the sheet number instead of the sheet name.

In the above code, you have used sheet number (1) that tells VBA to add the sheet before the sheet which is in the first position in all the worksheets. In this way, it will always add the new sheet at the beginning.

7. Add a New Sheet at the End (After the Last Sheet)

To add a new sheet in the end you need to write the code in a different way. So, for this, you need to know how many sheets there in the workbook are so that you can add a new sheet at the end.

In the above code, Sheet.Count returns the count of the sheets that you have in the workbook, and as you have defined the after argument it adds the new sheet after the last sheet in the workbook.

8. Add Multiple Sheets and use Names from a Range

The following code counts rows from the range A1:A7. After that, it loops to add sheets according to the count from the range and uses values from the range to name the sheet while adding it.

But with the above code, there could be a chance that the sheet name you want to add already exists or you have a blank cell in the name range.

In that case, you need to write a code that can verify if the sheet with the same name already exists or not and whether the cell from where you want to take the sheet name is blank or not.

If both conditions are fulfilled only then it should add a new sheet. Let me put it in steps two steps:

First, you need to write an Excel User Defined Function to check if a sheet with the same name already exists or not.

Second, you need to write a code using this function and that code should also check if the name cell is blank or not.

Now in the above code, you have used the VBA IF Statement and in this statement, you have the sheet check function which checks for the sheet name and then you have a condition to check if the name cell has a blank value.

Источник

lizarybka

0 / 0 / 0

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

Сообщений: 22

1

Создание листа первым. если он отсутствует

29.02.2016, 15:43. Показов 3205. Ответов 3

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


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

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

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
'если отсутствует лист содержание, то он создается
    On Error Resume Next
    Set sodergh = Sheets("Содержание")
    If sodergh Is Nothing Then
    Sheets.Add(, Sheets(Sheets.Count)).Name = "Содержание"
       
        Range("A1") = "Список листов"
        
        ActiveSheet.Hyperlinks.Add Anchor:=Range("A2"), Address:="", SubAddress:= _
        "'Канцелярские товары'!A2", TextToDisplay:="Канцелярские товары"
        
            ActiveSheet.Hyperlinks.Add Anchor:=Range("A3"), Address:="", SubAddress:= _
            "'Книги'!A3", TextToDisplay:="Книги"
            
    End If
    Exit Sub

Лист создается и гиперссылки на другие листы тоже работают, но создается он в конце, как написать, чтобы он создавался первым?



0



Programming

Эксперт

94731 / 64177 / 26122

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

Сообщений: 116,782

29.02.2016, 15:43

Ответы с готовыми решениями:

Макрос на создание листа и перенос данных с предыдущего листа
Помогите пожалуйста, мне нужен макрос на создание листа и перенос данных с предыдущего листа.
Есть…

Если в текст входит каждая из букв слова «work», то напечатать «содержит», если нет — «отсутствует».
Дана последовательность символов, заканчивающаяся точкой. Если в этот текст входит каждая из букв…

Ввести с клавиатуры фамилию и задать букву на поиск (любую) тогда вывести ее на экран если он есть, а если нет то сообщение что она отсутствует.
Ввести с клавиатуры фамилию и задать букву на поиск (любую) тогда вывести ее на экран если он есть,…

Если запись в столбце существует, то ничего не делать, если запись отсутствует, то записать нужное значение. Как реализовать?
Если запись в столбце существует, то ничего не делать, если запись отсутствует, то записать нужное…

3

Казанский

15136 / 6410 / 1730

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

Сообщений: 9,999

29.02.2016, 16:00

2

lizarybka,

Visual Basic
1
Sheets.Add(before:=Sheets(1)).Name = "Содержание"



0



0 / 0 / 0

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

Сообщений: 22

29.02.2016, 16:24

 [ТС]

3

Да, я так делала, но тогда появляется проблема, что он видит только один лист. Всего 3 листа. 1 лист — содержание, и есть еще вторые 2. Все листы передаются в комбобокс, кроме листа содержание. Я пишу такой же код, содержание вставляется первым, его нет в комбобоксе, но нет и еще одного листа



0



Казанский

15136 / 6410 / 1730

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

Сообщений: 9,999

29.02.2016, 16:49

4

Лучший ответ Сообщение было отмечено lizarybka как решение

Решение

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

тогда появляется проблема, что он видит только один лист

Кто «он»? Значит, надо научить его видеть листы, какие нужно.
А заполнение содержания можно автоматизировать:

Visual Basic
1
2
3
4
5
  Range("A1") = "Список листов"
  For i = 2 To Worksheets.Count
    ActiveSheet.Hyperlinks.Add Anchor:=Range("A" & i), Address:="", SubAddress:= _
        "'" & Worksheets(i).Name & "'!A2", TextToDisplay:=Worksheets(i).Name
  Next



0



Like this post? Please share to your friends:
  • Vba excel скроллинг формы
  • Vba excel скопировать ячейку с форматом
  • Vba excel скопировать ячейку на другой лист
  • Vba excel скопировать формат ячейки в excel
  • Vba excel скопировать формат ячеек