作者:iamlaosong
编程时为了避免错误,对对象操作前往往会进行一些判断,有些判断VBA提供了相应的函数或者方法,有些则没有提供。比如工作表如果不存在,引用就会报错,所以没有办法判断。这儿我们有一个有意思的办法。就是先引用一下对象,如果对象存在,则不会发生错误,我们则对对象进行正常操作,反之亦然。例如:
假定我们要增加一个某月月份命名的工作表,如果表已经存在,则不增加,看下面代码:
Sub t1()
Dim dt As Date, na As String
dt = #11/21/2020#
On Error Resume Next
na = Sheets(Format(dt, "mm月")).Name
If Err <> 0 Then
Sheets.Add after:=Sheets(Sheets.Count) '新表放在最后
ActiveSheet.Name = Format(dt, "mm月")
End If
Err.Clear
End Sub
创建工作表前,引用一下这个名字的工作表,将名字赋值给变量na,如果这个表不存在,则Err不等于0(Err其实就是Err.Number的简写),创建一个工作表。否则,清除这个错误。