Я пытаюсь написать программу в VBA
, которая принимает до 22 пользовательских ввода и создает и называет лист для каждого ввода.Имя excel листы с переменными в VBA
У меня есть Userform
, который устанавливает переменную в ничто при ее инициализации. Я имею проблемы, пытающиеся:
- создать новый лист, только если пользователь кладет что-нибудь в этом переменном и
- Именования листа с их вводом.
Вот то, что я до сих пор
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
Спасибо!
Используйте * массив *, а не набор * строки * varialbes –