复制新的表单

这段代码创build一张新的工作表复制。

Sub MakeNewSheet() Dim ShtName$ Sheets("New").Copy After:=Sheets(Sheets.Count) ShtName = InputBox("Enter Sheet Name") Sheets(Sheets.Count).Name = ShtName Sheets(ShtName).Visible = True End Sub 

当你看到信息表名称时,如果你input的名字正在复制,没有任何问题。 但是,如果点击取消或是空白名称,这个消息来。

exampel

我如何删除此消息? 显示任何其他消息,如警报!

您正在关注的进程正在生成错误。 该代码创build新工作表的新副本,然后要求提供一个名称。 如果未提供名称或单击“取消” ,则ShtNamevariables将为空白,但进程仍会尝试将新创build的工作表重命名为空白的Worksheet .Name属性 ,这就是发生错误的位置。 您可以使用复制过程中自动生成的名称保留新复制的工作表,也可以不创build工作表,除非提供了名称。

选项1 – 仅在提供名称时才创build工作表。

 Sub MakeNewSheet1() Dim ShtName$ On Error GoTo bm_Err_Out ShtName = InputBox("Enter Sheet Name") If CBool(Len(ShtName)) Then Sheets("New").Copy After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = ShtName Sheets(ShtName).Visible = True End If Exit Sub bm_Err_Out: MsgBox Err.Number & ": " & Err.Description, vbCritical Application.DisplayAlerts = False 'Sheets(Sheets.Count).Delete Application.DisplayAlerts = True End Sub 

选项2 – 创build工作表,但仅在提供名称时才重命名。

 Sub MakeNewSheet() Dim ShtName$ On Error GoTo bm_Err_Out ShtName = InputBox("Enter Sheet Name") Sheets("New").Copy After:=Sheets(Sheets.Count) If CBool(Len(ShtName)) Then Sheets(Sheets.Count).Name = ShtName End If Sheets(Sheets.Count).Visible = True Exit Sub bm_Err_Out: MsgBox Err.Number & ": " & Err.Description, vbCritical Application.DisplayAlerts = False 'Sheets(Sheets.Count).Delete Application.DisplayAlerts = True End Sub