问题描述
此宏插入工作表并为其命名。如果名称无效,则会转到代码的 NonValidName:
部分。
我遇到的问题是,如果名称无效,即已经存在或太长,则会按预期显示错误消息,但仍使用传统命名(即 Sheet+number)创建工作表。
如何防止在无效输入时创建工作表?
Sub InsertWorksheet()
Dim strName As String
Dim lTryAgain As Long
strName = InputBox("Sheet Name")
strNameUCase = UCase(strName)
If strNameUCase = vbNullString Then Exit Sub
ActiveWorkbook.Unprotect Password:="abc"
Sheets.Add After:=Sheets(Sheets.Count)
On Error GoTo NonValidName
ActiveSheet.Name = strNameUCase
Application.displayAlerts = False
If ActiveSheet.Name <> strNameUCase Then ActiveSheet.Delete
Application.displayAlerts = True
ActiveWorkbook.Protect Password:="abc"
Exit Sub
NonValidName:
lTryAgain = MsgBox(strNameUCase & " Is not a valid name. Try Again",vbOKCancel)
If lTryAgain = vbCancel Then
ActiveWorkbook.Protect Password:="abc"
Else
Run "InsertWorksheet" 'loops until valid name
End If
End Sub
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)