用VBA中的variables命名excel表

我正在尝试在VBA中编写一个程序,该程序最多需要22个用户input ,并为每个input创build并命名一个工作表。

我有一个用户Userform初始化时将该variables设置为Userform 。 我有问题试图:

  1. 只有当用户在该variables中放入任何东西时才创build一个新工作表
  2. 用input命名工作表。

这是我到目前为止

 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 

这里是值被添加到variables的地方。 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