[算表] VBA On Error Resume Next

楼主: zzatr (我还小)   2017-12-18 20:52:49
软件:excel
版本:2016
大家好 目前看书自学VBA中
书本中范例要把其中一栏的名称,逐一新增成工作表名称并不重复
Sub test()
Dim i As Integer, sht As Worksheet
Set sht = Worksheets("工作表21")
i = 2
Do While sht.Cells(i, "C") <> ""
On Error Resume Next
If Worksheets(sht.Cells(i, "C").Value) Is Nothing Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = sht.Cells(i, "C").Value
End If
i = i + 1
Loop
End Sub
其中加入了On Error Resume Next,估狗了一下这个指令是忽略错误继续执行
当我拿掉这行指令事就无法执行程序了,代表
If Worksheets(sht.Cells(i, "C").Value) Is Nothing Then
有问题吗?可是我看不出问题在哪,想问为啥差这个指令差这么多,还有上面那行错在哪
作者: newton41 (Newton)   2017-12-18 23:28:00
Cells(r,c) 里面放的是整数,不能用”C”。抱歉,我错了,可以用”C”。如果少了那句,当worksheets is nothing 的时候就有Error,因为他不知道那是什么,所以要加入那句让错误发生时继续执行。
楼主: zzatr (我还小)   2017-12-19 09:45:00
可是 worksheets is nothing不就是表示当没有这张工作表时请excel增加一张吗? 我不知道这指令错在哪XD
作者: soyoso (我是耀宗)   2017-12-19 09:57:00
on error resume nexte后因worksheeets无该张工作表会回传值nothing如不加就产生错误讯息回传值方面可于on error resume next下设个变量来set该worksheet()的部分,并以区域变量视窗或快速监看,看该变量(值)的部分

Links booklink

Contact Us: admin [ a t ] ucptt.com