[算表] 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