为什么我不能使用“如果工作表('worksheetname')是没有”来检查工作表是否存在于Excel VBA中
我的意思是,我知道如何使用On Error Resume Next来解决这个问题。 但是我不明白为什么这个错误会发生。 为什么excel编译器不会返回没有,如果找不到某些工作表….我误解了一些概念?
是的,如果Sheets("Output")
不是真的存在,则会出错。
您正试图访问不存在的对象。
尝试这个:
Dim wsop As Worksheet On Error Resume Next Set wsop = Sheets("Output") On Error Goto 0 If wsop Is Nothing Then Set wsop = Sheets.Add(, Sheets(Sheets.Count)) 'after last sheet wsop.Name = "Output" End If
请注意,我们使用OERN和OEG0来抑制variables赋值过程中的错误。
要详细了解error handling,请查看链接。 HTH。
尝试这个
Sub test() Dim wsSheet As Worksheet On Error Resume Next Set wsSheet = Sheets("Output") 'declare before check On Error GoTo 0 If wsSheet Is Nothing Then Worksheets.Add.Name = "Output" End If End Sub