今天溫習(xí)了一下VBA的基礎(chǔ),許久不用,撿起來還真是非常生疏,VBA是Visual Basic的一種宏語言,其實(shí)就是一中面向?qū)ο蟮木幊陶Z言,學(xué)過C的同學(xué)可以非常容易的入門。
VBA可以非常高效的處理大批量數(shù)據(jù),而且是“一勞永逸”。比如你要做公司年度銷售情況的匯總分析表,可能有數(shù)百張表,每張表又有數(shù)百條信息,人工去做不僅低效而且容易出錯,而編寫VBA程序則可以在數(shù)分鐘之內(nèi)全部處理完,當(dāng)然你編寫程序可能需要一天的時間,但是這個時間相信已經(jīng)是大大減少了,而且一次編寫完成以后只要公司銷售表格不變更,就可以一直用下去。
VBA簡單實(shí)用,無論是寫沒寫過代碼的人都可以輕松掌握,對于產(chǎn)品經(jīng)理來說,熟悉使用VBA對鍛煉自己的數(shù)據(jù)分析能力也很有幫助,本文就介紹一下VBA的入門基礎(chǔ)知識(以excel2010為例),想要深入學(xué)習(xí)VBA的話,個人推薦網(wǎng)易云課堂的楊老師的“全民一起VBA”,課程非常有趣,感覺楊老師轉(zhuǎn)行段子手也大有發(fā)展(掩面)。
啟用宏,并打開宏編輯器
打開excel 選擇文件-->選項(xiàng),找到自定義功能區(qū)把開發(fā)工具勾中

然后就會發(fā)現(xiàn)導(dǎo)航欄多了一個欄目:開發(fā)者工具

找到宏安全性,選擇啟用宏

然后excel就可以執(zhí)行宏代碼了,點(diǎn)擊Visual Basic進(jìn)入VBA代碼編輯模塊

注意這里編輯完代碼之后,excel保存的格式要變更為xlsm,而不是xlsx,不然的話宏代碼就不能被保存了,辛辛苦苦寫的代碼也就沒了。
到這里,我們就可以正式編寫宏代碼了
示例
我寫了一段特別簡單的代碼作為示例展示一下,代碼的主要功能是把全校各個班級的成績表匯總到一張表格,并計(jì)算總分。



下面解釋一下,首先添加控件,非常簡單,拖入表格即可

然后將拖入的按鈕關(guān)聯(lián)到一個宏


一般是新建一個宏,宏名隨意,建議英文,這樣不同環(huán)境下的程序才都可以執(zhí)行
代碼解釋
宏
Sub 宏名()
????代碼塊
end sub
以上的形式為一個宏,代碼塊填寫你要執(zhí)行的邏輯
單元格
Cells(i,j)代表第i行第j列的單元格
Range(“A7”)代表A7單元格
變量聲明
Dim 變量名
VBA變量允許不聲明使用,但是不聲明會帶來很多不必要的麻煩,比如你代碼塊中寫錯一個變量名,系統(tǒng)會認(rèn)為你這是在使用一個新的變量,從而不會報(bào)錯,注意使用Dim的時候需要在代碼區(qū)首行添加“Option Explicit”
運(yùn)算符
“=”是賦值或是判斷語句中判斷相等的含義
“+”加法,“-”減法,“/”除法,“*”乘法
“&”字符串連接

上述代碼就是計(jì)算第一行一列的單元格中的數(shù)值和第一行第二列單元格的數(shù)值相加,把結(jié)果顯示在第一行第三個單元格里
邏輯判斷符
”>“大于,“<”小于,“>=”大于等于,“<=”小于等于,“<>”不等于
循環(huán)語句
For 變量 = 數(shù)值1 to 數(shù)值2 step 數(shù)值3
Next
含義:變量從數(shù)值1開始變化,每次變化幅度為數(shù)值3,知道變化為數(shù)值2跳出循環(huán)
Do while 判定邏輯
? ??代碼塊
Loop
含義:判定邏輯為正則循環(huán)執(zhí)行代碼塊,直到邏輯判斷為負(fù),注意這里容易進(jìn)入死循環(huán),一定要檢查代碼塊中的代碼是否能使判定邏輯變負(fù)從而跳出循環(huán)
函數(shù)
Function 方法名(參數(shù)1,參數(shù)2,.......)
? ? 代碼塊
? ? 方法名=返回值
End Function
函數(shù)使用規(guī)則與C語言中類似,只不過返回值不用retrun,而是用 方法名=要返回的值。
先醬紫,關(guān)于VBA歡迎與我交流,共同進(jìn)步。