久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

【原創(chuàng)】VBA學習筆記(306)VBA中關于 exit 的用法

 十月的天空auol 2023-06-09 發(fā)布于山東

1 exit 用法的簡要總結

1.1 具體用法

  • exit do                  '  用在do  loop 循環(huán)里
  • exit for                  '  用在 for next 循環(huán)里
  • exit sub                 ' 用在sub里
  • exit function           ' 用在function里
  • exit propperty           '??

1.2 錯誤的用法

  • exit                '不能單獨使用
  • exit if              '一般并沒有必要跳出 if 吧

2 exit for 只會跳出本層循環(huán)

2.1 正常2層循環(huán)

  1. Sub ponymatest1()
  2. For i = 1 To 10
  3. For j = 1 To 5
  4. If j = 3 Then
  5. m = m + 1
  6. Debug.Print '第' & m & '次' & 'j=' & j
  7. End If
  8. Next
  9. If i = 7 Then
  10. n = n + 1
  11. Debug.Print '第' & n & '次' & 'i=' & i & ' ';
  12. End If
  13. Next
  14. End Sub

2.2 可以看出exit 跳出的循環(huán)只是本層的循環(huán)

  • 兩層for 循環(huán),,對應的 exit for 只會跳出本層
  1. Sub ponymatest1()
  2. For i = 1 To 10
  3. For j = 1 To 5
  4. If j = 3 Then
  5. m = m + 1
  6. Debug.Print '第' & m & '次' & 'j=' & j
  7. Exit For
  8. End If
  9. Next
  10. If i = 7 Then
  11. n = n + 1
  12. Debug.Print '第' & n & '次' & 'i=' & i & ' ';
  13. Exit For
  14. End If
  15. Next
  16. end sub

2.3 如果是exit sub 會跳出整個sub

  • exit for  跳出循環(huán)
  • exit sub 跳過整個過程,停止執(zhí)行這個sub
  1. Sub ponymatest1()
  2. For i = 1 To 10
  3. For j = 1 To 5
  4. If j = 3 Then
  5. m = m + 1
  6. Debug.Print '第' & m & '次' & 'j=' & j
  7. Exit Sub
  8. End If
  9. Next
  10. If i = 7 Then
  11. n = n + 1
  12. Debug.Print '第' & n & '次' & 'i=' & i & ' ';
  13. Exit For
  14. End If
  15. Next
  16. end sub

3 end 和 exit sub的差別不大,?

  • end sub 只能用在最后,,并且end sub 后面不能有 有效的語句代碼
  • 只有 end 可能出現(xiàn)在 代碼塊的中間
  • end 和exit sub 是有差別的
  • 雖然看起來,只運行1個sub的話差別不大的樣子,?

3.1 原始代碼

  1. Sub ponymatest1()
  2. For i = 1 To 5
  3. If i = 3 Then
  4. Debug.Print 'i*i=' & i * i
  5. End If
  6. Next
  7. ponymatest2
  8. End Sub
  9. Sub ponymatest2()
  10. Debug.Print 'hello, I am ' & 'ponymatest2'
  11. End Sub

3.2 加入exit for

  1. Sub ponymatest1()
  2. For i = 1 To 5
  3. If i = 3 Then
  4. Debug.Print 'i*i=' & i * i
  5. Exit For
  6. End If
  7. Next
  8. ponymatest2
  9. End Sub
  10. Sub ponymatest2()
  11. Debug.Print 'hello, I am ' & 'ponymatest2'
  12. End Sub

 

3.3 加入 exit sub 

  • 跳出了sub 不再執(zhí)行后面的語句
  1. Sub ponymatest1()
  2. For i = 1 To 5
  3. If i = 3 Then
  4. Debug.Print 'i*i=' & i * i
  5. Exit Sub
  6. End If
  7. Next
  8. ponymatest2
  9. End Sub
  10. Sub ponymatest2()
  11. Debug.Print 'hello, I am ' & 'ponymatest2'
  12. End Sub

3.4 加入end

  • 結束了sub 不再執(zhí)行后面的語句
  1. Sub ponymatest1()
  2. For i = 1 To 5
  3. If i = 3 Then
  4. Debug.Print 'i*i=' & i * i
  5. End
  6. End If
  7. Next
  8. ponymatest2
  9. End Sub
  10. Sub ponymatest2()
  11. Debug.Print 'hello, I am ' & 'ponymatest2'
  12. End Sub

4 end 和 exit sub的真實差別

4.1 變量釋放上不一樣

  • End釋放所有變量的內存,,然后退出所有sub
  • 而exit sub僅僅退出當前sub ,并不釋放變量
  1. Dim a
  2. Sub ponymatest1()
  3. a = 101
  4. Exit Sub
  5. End Sub
  6. Sub ponymatest2()
  7. a = 102
  8. End
  9. End Sub
  10. Sub ponymatest3()
  11. Debug.Print a
  12. End Sub
  13. Sub test1()
  14. ponymatest1
  15. ponymatest3
  16. End Sub
  17. Sub test2()
  18. ponymatest2
  19. ponymatest3
  20. End Sub

4.2 end 會終止所有正在運行的VB程序,?

  • 如果你正在運行的只有一個程序,兩個是一樣的,,如果同時運行的有兩個程序,,則
  • exit sub 只退出當前程序
  • end 結束所有程序的運行

4.3 end 會終止sub 和其他窗體等

  • end不管關閉這個sub ,還會關閉其他東西: 窗體等
  • 在含有窗體操作時特別需要注意,。
  • 比如,,在窗體上有一個按鈕,如果這個按鈕執(zhí)行的程序中含有 exit sub 是退出按鈕所執(zhí)行的程序,,窗體不會關閉,。
  • end  不但退出按鈕所執(zhí)行的程序,連窗體也會關掉,,所有正在運行的程序都會關掉

5 加了exit , 是否可以不需要本身的結尾了?---不能省略其他關鍵字

  • 比如 for  next 如果有了exit for 了 可以不需要next了嗎,?  不行
  • do loop 中間有了 exit do ,顯然還是需要末尾有 loop的
  • sub   ...    end sub 也是不能省略的
  • function  ...   end function
  1. Sub ponyma1()
  2. arr1 = Range('j1:k10')
  3. For i = LBound(arr1) To UBound(arr1)
  4. For j = LBound(arr1, 2) To UBound(arr1, 2)
  5. If arr1(i, j) > 999 Then
  6. Debug.Print arr1(i, j)
  7. Exit For
  8. End If '有exit for了,,是不是可以不要end if? '如果缺少這個,,會顯示next沒有for
  9. Next
  10. If arr1(i, j) = 'a' Then
  11. Debug.Print arr1(i, j)
  12. Exit Sub
  13. End If
  14. Next
  15. 'Exit Sub
  16. End Sub

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內容,,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多