1
我有2个值sheet1我想迁移到sheet2。截至目前,我的CommandButton正常工作,直到我创建一个报表。但只要我选择我的报表它给了我一个下标超出范围错误。在评论我的最后一行代码时,程序运行良好。VBA下标超出范围选择
Private Sub CommandButton1_Click()
Dim CustomerName As String, CustomerProblem As Integer, newSheet As Worksheet, newName As String
Do
newName = Application.InputBox("What do you want to name the new sheet?", Type:=2)
If newName = "False" Then Exit Sub: Rem cancel pressed
Set newSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(1))
On Error Resume Next
newSheet.Name = newName
newName = Error
On Error GoTo 0
If newName <> vbNullString Then
Application.DisplayAlerts = False
newSheet.Delete
Application.DisplayAlerts = True
MsgBox newName
End If
Loop Until newName = vbNullString
Worksheets("sheet1").Select
CustomerName = Range("C4")
CustomerProblem = Range("C5")
这条线给我错误。
Worksheets("newName").Select
上删除引号我仍然得到了同样的错误:/ – user2735206
在这种情况下,检查什么是'newName'的价值?它不能为空,也不能包含不需要的空格。它必须包含与工作表相同的确切名称。如果你看一下上面的代码,请参考 –
。我将该工作表的名称作为用户的输入。 newSheet.Name = newName – user2735206