看板 Office 關於我們 聯絡資訊
軟體: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 有問題嗎?可是我看不出問題在哪,想問為啥差這個指令差這麼多,還有上面那行錯在哪 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.143.15.249 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1513601571.A.79D.html
newton41: Cells(r,c) 裡面放的是整數,不能用”C”。 12/18 23:28
newton41: 抱歉,我錯了,可以用”C”。 12/18 23:33
newton41: 如果少了那句,當worksheets is nothing 的時候就有Erro 12/18 23:38
newton41: r,因為他不知道那是什麼,所以要加入那句讓錯誤發生時繼 12/18 23:38
newton41: 續執行。 12/18 23:38
zzatr: 可是 worksheets is nothing不就是表示當沒有這張工作表時 12/19 09:45
zzatr: 請excel增加一張嗎? 我不知道這指令錯在哪XD 12/19 09:46
soyoso: on error resume nexte後因worksheeets無該張工作表會回傳 12/19 09:57
soyoso: 值nothing如不加就產生錯誤訊息 12/19 09:57
soyoso: 回傳值方面可於on error resume next下設個變數來set該 12/19 10:12
soyoso: worksheet()的部分,並以區域變數視窗或快速監看,看該變 12/19 10:14
soyoso: 數(值)的部分 12/19 10:15
※ 編輯: zzatr (218.173.0.192), 12/21/2017 16:16:50