VBA基礎打卡

2021-08-10 18:20:32 字數 3268 閱讀 1410

1、vba 共有 12 種資料型別,可以根據資料型別用 type 自定義資料型別。

2、vba 允許使用未定義的變數,預設是變體變數,預設是變體變數variant。

dim  變數 as 型別   '定義為區域性變數,如 dim   xyz as integer (整數型 %)

private 變數 as 型別   '定義為私有變數,如 private  xyz as byte (位元組型)

public 變數 as 型別   '定義為公有變數,如 public  xyz as single (單精度型 !)

global  變數 as 型別   '定義為全域性變數,如 globlal  xyz as date(日期型)

static 變數 as 型別   '定義為靜態變數,如 static  xyz as double(雙精度型 #)

變數名必須以字母開始,並且只能包含字母數字和特定的特殊字元,不能包含空格句號 驚嘆號,也不能包含字元@ & $ #.名字最大長度為 255 個字元

3、常量為變數的一種特例,用 const 定義,且定義時賦值,程式中不能改變值,作用域也如同變數作用域。如下定義:

const pi=3.1415926 as single

4、陣列必須用 global 或 dim 語句來定義。定義規則如下:

dim 陣列名([lower to ]upper [, [lower to ]upper, ….]) as type ;lower 預設值為 0,可以在模組的宣告部分使用option base語句來改變模組中陣列的起始邊界。如 option base 1

該語句使陣列元素的索引號從1開始。

vba 還有一種功能強大的動態陣列,定義時無大小維數宣告,在程式中再利用redim 語句來重新改變陣列大小。

也可以用redim關鍵字同時宣告乙個動態陣列並指定該陣列的元素個數:  redim array1(5) as double 

原來陣列內容可以通過加 preserve 關鍵字來保留。

如下例: dim array1() as double  』'定義乙個名為array1的雙精度動態一維陣列

redim array1(5) 『重定array1(0 to 5), 下界為0,上屆為5,包含6個元素

array1(3)=250 』給陣列中下屆為3的元素賦值為250

redim preserve array1(5,10) 『重定array1陣列為二維陣列,第一維((0 to 5) 第二維(0 to 10)

vba在重新定義陣列大小時,原有的陣列資料就會丟失。如果需要保留原來的資料,可以使用preserve關鍵字:redim preserve array1(5)

如果重新定義陣列時減小了陣列的大小,則會丟失被縮減了的那部分元素的資料。

5、vba 中有兩種方法標識為注釋語句。  

單引號 』 ;如:』定義全域性變數;可以位於別的語句之尾,也可單獨一行  

rem ;如:rem 定義全域性變數;只能單獨一行

6、對物件的賦值採用:set myobject=object 或  myobject:=object

7、書寫規範

vba 不區分識別符號的字母大小寫,一律認為是小寫字母;

一行可以書寫多條語句,各語句之間以冒號 : 分開;

一條語句可以多行書寫,以空格加下劃線 _ 來標識下行為續行

8、判斷語句

if…then…else 語句

if number < 10   then    

digits = 1

elseif number < 100 then    

digits = 2

else   

digits = 3

end if

select case…case…end case 語句

select case pid

case 「a101」

price=200

case 「a102」

price=300

case else

price=900

end case

choose 函式

choose(index, choce-1,choice-2,…,choice-n),可以用來選擇自變數串列中的乙個值,並將其返回,index 必要引數,數值表示式或字段,它的運算結果是乙個數值,且界於

1 和可選擇的專案數之間。 choice 必要引數,variant 表示式,包含可選擇專案的其中之一。

getchoice = choose(ind, "speedy", "united", "federal")

switch 函式

switch(expr-1, value-1[, expr-2, value-2 _ [, expr-n,value-n]]), switch 函式和 choose 函式類似,但它是以兩個一組的方式返回所要的值,在串列中,最先為true 的值會被返回。 expr 必要引數,要加以計算的 variant 表示式。value 必要引數。如果相關的表示式為 true,則返回此部分的數值或表示式,沒有乙個表示式為 true,

switch 會返回乙個 null 值。

9、迴圈語句

for next 語句 

for words = 10 to 1 step -1      ' 建立 10 次迴圈    

for chars = 0 to 9        ' 建立 10 次迴圈        

mystring = mystring & chars     ' 將數字新增到字串中   

next chars          

mystring = mystring & " "     

next words

for each…next 語句  

for each rang2 in range1

with range2.interior

.colorindex=6

.pattern=xlsolid

end with

next

with…end with 語句,目的是省去物件多次呼叫,加快速度。

do…loop 語句,在條件為 true 時,重複執行區塊命令

do condition    ' while 為當型迴圈,until 為直到型迴圈

statements

exit do

statements

loop

或do  ' 先 do 再判斷,即不論如何先乾一次再說

statements

exit do

statements

loop condition

vba基礎知識

1 public和private一般用於定義全域性變數,也可以在類中使用。1 1 區別在於 public 前者定義的是公共變數,如果在乙個模組當中使用,那麼整個應用程式都能使用它所定義的變數,如果在類中使用,那麼它就是乙個共有屬性。private 而後者定義的是私有變數,如果在乙個模組中使用,那麼只...

c 基礎接觸(打卡)

using system using system.collections.generic using system.text namespace test 1.所有關鍵字都是由小寫字母組成的,c 語言中,大小寫是嚴格區分的。2.中的console.writeline 與之前的console.wri...

Datawhale Python基礎 打卡Day1

如果安裝後無法正常使用,linux環境下可以嘗試執行一下source bashrc命令,windows下檢查系統環境變數。b 直譯器 推薦使用py3 的版本,前段時間看到新聞說python2到20年就停止更新了,不過可以建立虛擬環境,不用太過糾結。一直以為直譯器和編譯器是一回兒事,查了以後發現還是有...