用数组处理相同班级只保留一个 谁能解释一下为什么

用数组处理相同班级只保留一个 谁能解释一下为什么

On Error Resume Next 的意思就是遇到错误就跳过去,不做任何处理。也就是说用了这一句,错误仍然是存在的,但它不提醒你而已。
其实这段程序就是利用出错来达到目的的,错误出现在这行:
Set sht = Sheets(arr(i, 1))
程序会预先假定这个班级的工作表是存在的,然后就直接把这个表赋值给对象变量sht,但如果这个表确实不存在,那么程序就出错了。而如果有了 On Error ... 这句,程序就不会报错,继续往下处理,这时候 sht 就是 Nothing(就是空对象),那么程序就会插入这个工作表了。
这其实是个偷懒(或者说无赖)的做法,标准的做法应该是通过循环遍历Sheets集合,检测指定的工作表是否存在这个集合中,不存在就进行插入操作,这样的话就不需要On Error了,但是这肯定要多写几行代码,程序员为了偷懒,就改用现在这种方法了。
应该这么说,凡是利用程序出错来达到目的的程序代码,都属于旁门左道,非特殊情况下一般不提倡这么做。追问

你太高手了,如果不用on error,还可以怎样改

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜