【发布时间】:2019-12-23 19:22:30
【问题描述】:
使用 sheet1 中的名称创建工作表效果很好。但是,如果我再次错误地运行代码,则会出现运行时 1004 错误,因为新创建的工作表名称已经存在。这很好,但是如何处理此错误并防止 Excel 创建一个具有随机名称的默认工作表?
我希望 Excel 到 MsgBox 我有一个重复,然后它应该什么都不做。我知道有类似的线程,但他们没有回答我的问题。谢谢。
Private Sub CreateSheet()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets.Add(After:= _
Worksheets("Sheet1"))
Application.DisplayAlerts = False
ws.Name = Sheets("Sheet1").Range("N1")
On Error Resume Next
If (Worksheets("ws.Name").Name <> "") Then
MsgBox ("name already exists, please delete")
Else
ws.Visible = xlSheetVisible
ThisWorkbook.Sheets("Sheet1").Range("A:AB").Copy
ThisWorkbook.Sheets(ws.Name).Range("A1").PasteSpecial Paste:=xlPasteValues
End If
End Sub
【问题讨论】:
-
你需要 "'s" 中的 "ws.name" 吗?你正在寻找一个名为 ws.name 的工作表而不是 ws.name 的值?