VBA基本語言結構


幾個語句

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 <</span>循環變量>=<</span>初值> to <</span>終值> [step步長,默認為1]

   <</span>循環體>

   [exit for]   ‘跳出循環觸發語句,執行next后的語句

   [循環體]   

Next [循環變量,變量名可省略]

 

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

首先分析需要怎么把奇數調出來:1開始,按順序加上2就行。一個循環。

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

 

結果:

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

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

Do while 語句

條件語句,格式:

Do [while 邏輯表達式]   

   <</span>循環體>

   [exit do]  ‘跳出循環,執行loop后的語句

   [循環體]

   [循環體]

Loop     ‘do while語句結束標志,返回do語句處,再次判斷循環條件

 

也可以在結尾判斷,即:

Do 

   <</span>循環體>

   [exit do]     

Loop [while 邏輯表達式]

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

 

Dountil語句

和do while語句相似,格式:

Do [until 邏輯表達式]    ‘當條件滿足時,退出,直到型

 <</span>循環體>

 [exit do]

Loop

另一種結尾判斷式:

Do

 <</span>循環體>

 [exit do]

Loop [until 邏輯表達式]   ‘當條件滿足時,退出

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

Eg:

其他幾個函數相近,自行練習。或者這樣:Loop Until Cells(i, "A") = ""

 

For each…next語句

一個循環語句,用於在某一集合內部選擇對象的語句,

格式:

For each 元素變量 in 集合名稱或數組名稱

   <</span>語句塊>

   [exit for]

Next [元素變量]

 

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

Eg:下面的代碼會在數組的每個元素中循環,並且將每個值設置成它的索引變量 I的值。(來自百度)

 

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=1

x:sum=sum+i

i=i+1

if i<=100then goto x

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.注意每個設置選項前有小點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM