【VBA研究】利用程序错误检测对象是否存在

本文介绍了在VBA编程中如何通过错误捕捉来判断对象(如工作表)是否存在。通过尝试引用对象,如果对象不存在,VBA会抛出错误,从而实现条件判断。文中提供了一个创建月份命名工作表的例子,以及一个利用错误处理查找邮件号码的示例,说明了这种方法的实用性。同时,也提到了标准的判断对象是否为空的方法——使用`Is Nothing`。
摘要由CSDN通过智能技术生成

作者: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的简写),创建一个工作表。否则,清除这个错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值