『塊』的形式的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 推薦這句 直接初始化,可以不...