返回列表 上一主題 發帖

[發問] VBA某整段程式碼不執行(GoTo)的語法

回復 6# ziv976688


    應該是你的GoTo指令放錯位置了
放在Else後面試試看
  1. if....
  2. ....
  3. '機率表.....
  4. GoTo line1   '---->移去後面
  5. Else
  6. '<-----移到這個位置
  7. ....
  8. line1:
  9. End If
複製代碼

TOP

回復 8# ziv976688

1.列358是下面這一行嗎?因為我執行時發生,錯誤不是出現在這一行
  1. Sheets(1).[D2].NumberFormatLocal = "0.0%"
複製代碼
2.如果goto沒法用,你可以把那一段都變成註解就好了
使用編輯工具列的 "使程式行變為註解",還原的話使用他右邊那個按鈕"使註解還原為程式"

2017-10-21_143918.png (4.49 KB)

2017-10-21_143918.png

TOP

回復 14# ziv976688
1.你覺得goto沒被使用的原因是因為跳出錯誤顯示位置程式碼要跳過的地方
其實程式碼是有被跳過的,但因為程式也檢查是否有錯誤

2.你錯誤地方
因為你這個迴圈變數跟你上一層迴圈的變數一樣
  1. For Each a In Sheets(1).Range("C2:C8")
  2.   If a = "" Then Exit For
  3. '-------改成下面
  4. For Each a1 In Sheets(1).Range("C2:C8")
  5.   If a1 = "" Then Exit For
複製代碼

TOP

回復 16# ziv976688

下面舉個範例:
text1只會跳出1和3的視窗,不會出現2
text2中加入有錯誤的地方,1的視窗出現,2還是被跳過,程式會出現要被跳過的部分中有錯誤
  1. Public Sub text1()
  2. MsgBox "1"
  3. GoTo 101
  4. MsgBox "2"
  5. 101:
  6. MsgBox "3"
  7. End Sub

  8. Public Sub text2()
  9. MsgBox "1"
  10. GoTo 101
  11. MsgBox "2"
  12. AAA = Max(Range("A1:A3")) '<---------故意在程式碼中寫錯

  13. 101:
  14. MsgBox "3"
  15. End Sub
複製代碼

TOP

        靜思自在 : 多做多得。少做多失。
返回列表 上一主題