Имя листа excel с переменными в VBA

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

У меня есть Userform который устанавливает переменную в ничто, когда она инициализируется. У меня возникают проблемы с попыткой:

  1. создать новый лист, только если пользователь помещает что-либо в эту переменную и
  2. Именование листа с их вводом.

Вот что я до сих пор

 Public Part(1 to 22) as String 

  Sub Start() Application.ScreenUpdating = False For i = 1 To 22 If Part & i = "" Then Else Sheets.Add , after:=Worksheets(Worksheets.Count - 2) ActiveSheet.Name = Part & i End If Next i Application.ScreenUpdating = True End Sub 

Здесь значения добавляются к переменной. PartNumber1 – 22 – это имена текстовых полей в пользовательской форме

  Private Sub UserForm_Initialize() PartNumber1.Value = "" PartNumber2.Value = "" PartNumber3.Value = "" PartNumber4.Value = "" PartNumber5.Value = "" PartNumber6.Value = "" PartNumber7.Value = "" PartNumber8.Value = "" PartNumber9.Value = "" PartNumber10.Value = "" PartNumber11.Value = "" PartNumber12.Value = "" PartNumber13.Value = "" PartNumber14.Value = "" PartNumber15.Value = "" PartNumber16.Value = "" PartNumber17.Value = "" PartNumber18.Value = "" PartNumber19.Value = "" PartNumber20.Value = "" PartNumber21.Value = "" PartNumber22.Value = "" End Sub Private Sub PartNumDone_Click() Part(1) = PartNumber1.Value Part(2) = PartNumber2.Value Part(3) = PartNumber3.Value Part(4) = PartNumber4.Value Part(5) = PartNumber5.Value Part(6) = PartNumber6.Value Part(7) = PartNumber7.Value Part(8) = PartNumber8.Value Part(9) = PartNumber9.Value Part(10) = PartNumber10.Value Part(11) = PartNumber11.Value Part(12) = PartNumber12.Value Part(13) = PartNumber13.Value Part(14) = PartNumber14.Value Part(15) = PartNumber15.Value Part(16) = PartNumber16.Value Part(17) = PartNumber17.Value Part(18) = PartNumber18.Value Part(19) = PartNumber19.Value Part(20) = PartNumber20.Value Part(21) = PartNumber21.Value Part(22) = PartNumber22.Value End Sub 

Благодаря!

Используйте массивы. Вот пример. Сначала выполняется PseudoUserform () :

 Public Part(1 To 22) As String Sub PseudoUserform() Part(6) = "James" Part(8) = "Ravenswood" End Sub Sub Start() Application.ScreenUpdating = False For i = 1 To 22 If Part(i) = "" Then Else Sheets.Add after:=Worksheets(Worksheets.Count - 2) ActiveSheet.Name = Part(i) End If Next i Application.ScreenUpdating = True End Sub 
Interesting Posts

Excel VBA – передача аргумента в свойство

Excel vba для удаления дубликата столбца в Excel в зависимости от критериев

Excel: я хочу, чтобы СУМ высшие 2 значения, если ячейка в строке соответствует строке

Ошибка создания шаблона Excel 2013 в MVS 2015

Excel: копирование данных на отдельном листе

Синхронизировать транзакции Exact Online GL с ошибкой Invantive Control for Excel: «Вы пытаетесь перемещать ячейки внутри таблицы на листе»

Преобразование xls в xlsx с использованием инструкции vba name искажает файл

новый символ строки не работает должным образом при записи из excel в текстовый файл

Удаление дубликатов с использованием критериев вторичных данных

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

Как отключить научную нотацию при работе с Perl и Excel

Ошибка сводной таблицы – группировка трех полей (столбцов) в один

Excel VBA Сохранить путь / имя из ячеек с переменными

удаление вкладок, имена которых содержат один и тот же символ

Фильтровать данные на основе четверти заданной даты в VBA

Давайте будем гением компьютера.