vba 跳出for迴圈 VBA的基本語句

2021-10-14 02:23:06 字數 3470 閱讀 1293

『塊』的形式的vba語句比完整一行的**功能和適用性方面更強。

二選一:

if 條件表示式 then

條件表示式返回true時要執行的操作和計算

[else

條件表示式返回false時要執行的操作和計算]

end if

多選一:

if 條件表示式 then      

條件表示式返回true時要執行的操作和計算

elseif 條件表示式 then

條件表示式返回false時要執行的操作和計算

elseif 條件表示式 then

條件表示式返回false時要執行的操作和計算

[else

條件表示式返回false時要執行的操作和計算]

end if

select case 表示式

case is 條件表示式1 『如case is >8或者case 1 to 8

條件表示式返回false時要執行的操作和計算

case is 條件表示式2

條件表示式返回false時要執行的操作和計算

case is 條件表示式3

條件表示式返回false時要執行的操作和計算

case else

條件表示式返回false時要執行的操作和計算

end select

'多選一

case select相比於if的多選一判斷,適用性更強

for 迴圈變數=初值 to 終值 [step 步長值]

迴圈體(要迴圈執行的操作或計算)

[exit for] '不論設定迴圈執行多少次,當執行exit for時,直接執行next語句之後的**

[迴圈體]

next [迴圈變數名]

例1:

public sub 插入奇數() 

dim xrows as byte

for xrows = 1 to 99 step 2

cells((xrows + 1) / 2, "a") = xrows

next xrows end sub

'找出100以內的奇數

例2:

public sub 被3整除的數() 

dim i as byte

for i = 3 to 99 step 3

cells(i / 3, "a") = i

next i

end sub

'找出100以內能被3整除的數

for each 變數 in 集合名稱或陣列名稱

語句塊1

[exit for]

[語句塊2]

next [元素變數]

'如果在陣列中迴圈,變數定義為相應的資料型別,如果是在陣列中迴圈,變數定義為variant型別

例:

public sub 插入sheet名()

dim sht as worksheet, i as integer

i = 1

for each sht in worksheets

cells(i, "a") = sht.name

i = i + 1

next sht

end sub

'插入工作簿中的工作表名

開頭判斷式:

do [while 迴圈條件]

迴圈體[exit do]

[迴圈體]

loop

'如果迴圈體中存在exit do語句將跳出迴圈,執行loop後語句

結尾判斷式:

do 

迴圈體[exit do]

[迴圈體]

loop [while 迴圈條件]

使用結尾判斷式語句會比開頭判斷式多執行一次迴圈體

例1:

public sub shtadd()

dim i as byte

i=1do

worksheets.add

i=i+1

loop while i<=5

end sub

例2:

public sub shtadd2()

dim i as byte

i=1do

if i>5 then exit do

worksheets.add

i=i+1

loop

end sub

開頭判斷式:

do [until迴圈條件]    

迴圈體

[exit do]

[迴圈體]

loop

結尾判斷式:

do 

迴圈體[exit do]

[迴圈體]

loop [until 迴圈條件]

do while語句和do until用法基本相同,不同的是do while語句在迴圈條件為false時退出迴圈,do

until語句在迴圈條件為true時退出迴圈。

例:

public sub 新建工作表()

dim i as integer

i = 1

do until i > 5

worksheets.add

i = i + 1

loop

end sub

讓程式跳轉到目標位址

例:

public sub 跳轉()

dim sum as long, i as integer

i = 1

x: sum = sum + i

i = i + 1

if i <= 100 then goto x

msgbox "1到100的自然數和是:" & sum

end sub

減少錄入重複**的次數及提高程式的執行效率

例:

public sub 簡化()

with worksheets("sheet1").range("a1").font

.name = "宋體"

.size = 12

.bold = true

.colorindex = 3

end with

end sub

vba 跳出for迴圈 VBA 從一而終For迴圈

今天,我們來學習下vba 鏡率不亞於if語句的,for迴圈語句。掌握了這兩種語句,可以搞定90 的基本功能。組合起來使用,更是其樂無窮!接下來,我們將學習for迴圈語句的兩種基本結構。主要分為 for next迴圈結構,for each next 迴圈結構。01 for.next迴圈結構 首先,我們...

VBA 中的各種迴圈

利用迴圈和分支語句判斷 b 列數字的符號,將結果填入 c列。原始 如如下 1 for 迴圈和 if 語句,如下 sub sign dim sign as string,i as integer 宣告變數 for i 3 to13 step 1if cells i,b 0 then sign 負數 e...

VBA中集合collection方法的基礎知識

剛剛有新手在問 collection是什麼意思?於是有了下面的 介紹 sub test dim s as collection 定義s變數為集合物件 set s new collection 初始化集合物件s 否則無法使用 dim s as new collection 推薦這句 直接初始化,可以不...