VBA基本語言結構

2022-08-24 20:48:07 字數 3929 閱讀 9053

幾個語句

if…then語句

if a then b:如果a判斷條件成立,則執行b語句;

eg:if time >0.5 then msgbox」下午好」

「time>0.5」:time函式返回當前時間,大於0.5指現在是12點後,即顯示下午好。

也有if a then b else c:如果判斷條件a成立,則執行b語句,如果a不成立,則執行c語句。(個人注意,不能像c語言那樣回車跳行,整句語句需在同一行,如果需要跳行,則需要在最後加上endif )

eg:if time >0.5then

msgbox」下午好」

else

msgbox」早上好」

end if

同時,此語句也有elseif的情況。就是多重條件。

eg:if time<0.5 then

msgbox」早上好」

elseif time <0.75

msgbox」下午好」

else

msgbox」晚上好」

endif

select…case語句

在判斷或者選擇條件較多時,使用if…then語句就比較麻煩,這是可以使用select…case語句。和c語言中的相近。

eg:select case time     『select case 後面跟判斷表示式,可數值表示式,字串表示式

case is<0.5       『case後跟表示式列表,用來判斷的值,可以使to或者is,如case 1 to 5,表示case 1,2,3,4,5.

msgbox」早上好」

case 0.5 to 0.75

msgbox」下午好」

case else

msgbox」晚上好」

end select

例項,利用select   case語句寫乙個分數判斷程式,判斷所給分數是否及格或者優良。

如上。for … next語句

此語句用於迴圈。比如在需處理的資料有很多行時,我們不能為每一行都寫一句**。多用在不同物件的選擇引用上。

格式:for 迴圈變數》=初值》 to 終值》 [step步長,預設為1]

迴圈體》

[exit for]   『跳出迴圈觸發語句,執行next後的語句

[迴圈體]   

next [迴圈變數,變數名可省略]

eg:將1到100中的奇數按順序放入表單中的a列。

首先分析需要怎麼把奇數調出來:1開始,按順序加上2就行。乙個迴圈。

然後是放入單元格,需要按順序,所以要單獨對單元格引用定義。1開始,每次迴圈加上1.

結果:

我另外試了下,cells函式選擇單元格也可以橫向,將其中的列引數換為變數即可:

注意數值變數就不用打引號了。

do while語句

條件語句,格式:

do [while 邏輯表示式]   

迴圈體》

[exit do]  『跳出迴圈,執行loop後的語句

[迴圈體]

[迴圈體]

loop     『do while語句結束標誌,返回do語句處,再次判斷迴圈條件

也可以在結尾判斷,即:

do 迴圈體》

[exit do]     

loop [while 邏輯表示式]

乙個是先判斷後執行,乙個是先執行,後判斷。注意,這兩個不同,在如判斷條件為數值時,注意取值大小。

dountil語句

和do while語句相似,格式:

do [until 邏輯表示式]    『當條件滿足時,退出,直到型

迴圈體》

[exit do]

loop

另一種結尾判斷式:

do迴圈體》

[exit do]

loop [until 邏輯表示式]   『當條件滿足時,退出

似乎和c語言有些不一樣,不過分開記就行。

其他幾個函式相近,自行練習。或者這樣:loop until cells(i, "a") = ""

for each…next語句

乙個迴圈語句,用於在某一集合內部選擇物件的語句,

格式:for each 元素變數 in 集合名稱或陣列名稱

語句塊》

[exit for]

next [元素變數]

這裡需要注意,我們是將集合或陣列中的元素變數進行選擇,因此在提前定義元素變數時,需要定義型別和集合或陣列一致。

dimtestarray(10) as integer, i as variant

for each i intestarray

testarray(i) = i

next i

goto語句

用於直接跳轉指定位置的語句,和c語言的相近。在vba中,指定位置可以在目標**所在行前加上乙個帶冒號的字串或不帶冒號的數字作為標籤,然後在goto的後面寫上標籤。

eg:dim sum as long,ias integer

i=1x:sum=sum+i

i=i+1

if i<=100then gotox

msgbox」1到100的和為:」&sum

利用goto語句達到迴圈,其中「x」即為跳轉位置標識。不過一樣,為了日後維護方便,不建議多用。

with語句

with語句的作用是,在處理同一物件的不同屬性時,可以簡化**。

eg:對某一單元格進行格式設定:

with worksheets(「sheet1」).range(「a1」).font

.name=」仿宋」    『前面的小點不要忘了

.size=12

.bold=true

.colorindex=3

end with

此過程用來設定sheet1表單中a1單元格的格式,字型為仿宋,大小為12,加粗選擇true,顏色**為3.注意每個設定選項前有小點。

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

塊 的形式的vba語句比完整一行的 功能和適用性方面更強。二選一 if 條件表示式 then 條件表示式返回true時要執行的操作和計算 else 條件表示式返回false時要執行的操作和計算 end if 多選一 if 條件表示式 then 條件表示式返回true時要執行的操作和計算 elseif...

VBA基本語法整理

1.區域性變數 在sub或者function結構中定義的變數 2.全域性變數 public name 普通全域性變數 public styledic as object 字典全域性變數普通變數,直接用 name zjmainstay 賦值即可。定義乙個字典變數 dim styledic as obj...

VBA基本語法整理

最近為了乙個調貨程式,邊學邊用,終於是寫出來了乙個excel vba程式,其中學會了不少使用方法,藉此整理出來,希望能夠給後來的新人有所幫助。1.區域性變數 在sub或者function結構中定義的變數 2.全域性變數 public name 普通全域性變數 public styledic as o...