我正在使用以下代码在工作簿中检查 sheet1
和 sheet2
存在与否。如果它们不存在,那么它们应该被生成。否则,什么都不应该发生。
我的问题是宏仅在两个工作表都不存在时才适用于第一次迭代。创建工作表后,我收到错误消息。诸如“名称已经存在。选择一个不同的……”之类的东西。如果sheet1
,我不希望发生任何事情和 sheet2
已经存在。
Sub Worksheet()
Dim x As Integer, blnFound1 As Boolean, blnFound2 As Boolean
blnFound1 = False
blnFound2 = False
With ThisWorkbook
For x = 1 To .Sheets.Count
If .Sheets(x).Name = "Sheet1" Then
blnFound1 = True
Exit For
End If
If .Sheets(x).Name = "Sheet2" Then
blnFound2 = True
Exit For
End If
Next x
If blnFound1 = False Then
.Sheets.Add
With ActiveSheet
.Name = "Sheet1"
End With
End If
If blnFound2 = False Then
.Sheets.Add
With ActiveSheet
.Name = "Sheet2"
End With
End If
End With
End Sub
最佳答案
我在每个项目上都使用不同的宏来处理这个问题,因此您可以随时使用它:
Sub TestSheet(SheetName As String)
Dim Exists As Boolean
With ThisWorkbook
On Error Resume Next
Exists = (.Worksheets(SheetName).Name <> "")
On Error GoTo 0
If Not Exists Then
.Sheets.Add After:=.Sheets(.Sheets.Count)
.Sheets(.Sheets.Count).Name = SheetName
End If
End With
End Sub
这是您的测试方式:
Sub Test()
TestSheet "Sheet1"
TestSheet "Sheet2"
End Sub
关于excel - 如果工作表不存在,如何创建工作表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56688434/