日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

vba 跳出for循环_VBA简单入门08:For循环

發布時間:2025/3/19 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vba 跳出for循环_VBA简单入门08:For循环 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、循環的作用和原理

作用:用來有效地重復執行相同或者相似的操作。Sub vv()

Dim i As Long

i = 0

i = i + 1

i = i + 1

i = i + 1

i = i + 1

i = i + 1

MsgBox i

End Sub

上面代碼,每句 i=i+1執行后,i 都在原來的基礎上加上 1。因此最后 i=5。

顯然,i=i+1這5句代碼都是重復的操作。假如要執行 【 i=i+1】 100次、1000次,那代碼得需要寫多長?

于是,就有了循環。For循環是一個結構,For開始,Next結尾。Dim i As Long

Dim x As Long '循環次數

i = 0

For x = 1 To 5

i = i + 1

Next

如上面的代碼,For x = 1 To 5 表示循環是從1-5執行5次,表示執行了5次 i=i+1 這樣的操作。

For循環的原理:For循環實際上是內置了一個看不到的計數器,當x=1時,執行 i=i+1 完畢后,Next會自動進入下一次循環(內置計數器計數記錄),下一次 x=2 ,執行 i=i+1 完畢后,再下一次 x=3.....如此循環重復,直到循環結束,就是x=6(超過5)的時候結束。如下面的gif圖。

2、For循環的步長。

步長就是我們軍訓排隊時,教官號令報數,單數出列。單數1、3、5、7.....之間都相差 2,這就是步長。

如,現在我們要在A1:A10單元格區域,依次選擇單數A1、A3、A5......A9。步長是使用要在For語句后面寫上

Step 步長值。Dim i As Long

For i = 1 To 10 Step 2 '步長為2

Cells(i, 1).Select

Next

上面代碼 i 的值變化依次是1、3、5、7、9。

實際上 For x = 1 To 5 是省略了步長 Step 1 的,默認步長是1的情況下可省略。

3、For循環的方向

一般循環的方向是從上到下的,但也可以從下到上。VBA刪除行就是一個典型的例子。

下面例子,刪除A1:A12中空單元格所在的行。

如果需要從下到上循環,注意兩點:

1、For i = 12 To 1 而不是 For i = 1 To 12

2、Step -1聲明方向,不可以省略。-1 是反方向的步長值,可以更改,但必須負整數。Sub gggg()

Dim i As Long

For i = 12 To 1 Step -1 '注意方向

If Range("a" & i) = "" Then

Range("a" & i).EntireRow.Delete '刪除整行

End If

Next

End Sub

4、循環的嵌套

正如 if結構可以嵌套,循環也可以。下面例子用兩個循環,一次填充數字1-10。

該代碼,先開始執行外循環(不執行完,一次一次來),然后執行完內循環(執行完5次),再進入下一次外循環,重復執行內循環.....

5、退出For循環

下面例子,H1:H6有6個姓名。我們需要在其中尋找“小喬”,一般情況下,找到小喬了,我們就會停止尋找動作,是不是?所以這里的循環次數并不是6次,而是4次,我們找到小喬后提前退出了。

if結構常常用來配合退出循環。退出循環的語句是Exit For。

Dim i As Long

For i = 1 To 6

If Cells(i, "h") = "小喬" Then

Cells(i, "h").Interior.ColorIndex = 3 '設置背景顏色

Exit For '退出循環

End If

Next

李白和百里玄策不管啦!

6、另一個For循環:For each.....Next

For each.....Next循環常常用來遍歷集合對象。Dim Sht As Worksheet

For Each Sht In Worksheets

Debug.Print Sht.Name

Next

代碼遍歷工作表集合,依次打印工作簿中每個工作表的名稱。

【小結】

這是簡單系列的第8篇文章,現在開始我們的VBA編程之旅了。

在現學到的知識范圍內,我們可以嘗試解決3個實際問題。

VBA其實真的很簡單!

例子1:高級篩選

代碼如下,僅供參考:Sub bb()

Range("a1:c1").Copy Range("j1") '復制標題

k = 1 '記錄行號

For i = 2 To 13 '循環遍歷數據

'如果部門是A且銷售額大于等于1500

If Cells(i, 1) = "A" And Cells(i, 3) >= 1500 Then

k = k + 1 '計數,輔助輸出數據到 j 列的單元格區域

'表格整行數據復制到 j 列相應單元格

Range(Cells(i, 1), Cells(i, 3)).Copy Cells(k, "j")

End If

Next

End Sub

篩選結果

例子2:簡易工資條制作

參考代碼:Sub vvvv()

Dim i As Long

Dim k As Long

k = 1 '行號計數

Range("j1:n100").Clear '清楚內容,方便更新數據

For i = 2 To 7 '遍歷工資表

Range("a1:e1").Copy Cells(k, "j") '標題

Range(Cells(i, 1), Cells(i, 5)).Copy Cells(k + 1, "j") '復制工資數據

k = k + 3 '工資條間隔

Next

End Sub

例子3:復雜一點的高級篩選(循環嵌套)

要求:提取部門為A且銷售額大于等于1500的數據+部門為C且銷售額大于等于3000的數據。

參考代碼:Sub bb()

Range("a1:c1").Copy Range("j1") '復制標題

k = 1 '記錄行號

For x = 2 To 3 '遍歷篩選條件要求的部門

'//先提取A部門符合要求的數據,再提取C部門符合要求的數據

For y = 2 To 13 '循環遍歷表格數據

'Cells(x, "f") 為篩選條件的部門,Cells(x, "g")為篩選條件的銷售額

If Cells(y, 1) = Cells(x, "f") And Cells(y, 3) >= Cells(x, "g") Then

k = k + 1 '計數,輔助輸出數據到 j 列的單元格區域

'表格整行數據復制到 j 列相應單元格

Range(Cells(y, 1), Cells(y, 3)).Copy Cells(k, "j")

End If

Next

Next

End Sub

結果

希望大家可以愉快的入門VBA!

總結

以上是生活随笔為你收集整理的vba 跳出for循环_VBA简单入门08:For循环的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。