使用 VBA 中的变量命名 excel 个工作表
Name excel sheets with variables in VBA
我正在尝试在 VBA
中编写一个程序,最多需要 22 个用户输入 并为每个输入创建并命名一个 sheet。
我有一个 Userform
在初始化时将变量设置为空。我在尝试时遇到问题:
- 仅当用户在该变量中输入任何内容并且
才创建一个新的sheet
- 用他们的输入命名 sheet。
这是我目前的情况
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
我正在尝试在 VBA
中编写一个程序,最多需要 22 个用户输入 并为每个输入创建并命名一个 sheet。
我有一个 Userform
在初始化时将变量设置为空。我在尝试时遇到问题:
- 仅当用户在该变量中输入任何内容并且 才创建一个新的sheet
- 用他们的输入命名 sheet。
这是我目前的情况
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