說說VBA的那些事兒
VBA的全稱:Visual Basic for Applications (一堆英文字母,啥玩意?)
說白了,就是基于應(yīng)用程序的 VB 語言,既然是VB語言,那就肯定要遵循VB的語法,這么說來,VBA也是一種編程語言咯?我們可以這么理解:Applications 應(yīng)用程序的集合,那么以Excel來說,當(dāng)用在Excel中的時(shí)候 就是基于Excel的VB語言,也就是說,這時(shí)候VBA操作的是Excel對象。
VBA多用于處理重復(fù)且單一的工作,比如:合并工作表啊,拆分工作表啊 ,代替復(fù)雜的數(shù)組公式啊等等,從而提高我們的工作效率。說白了:VBA就是微軟為了方便用戶DIY自己的Excel,從而將VBA 集成到OFFICE中的。(我就認(rèn)為VBA就是用來二次開發(fā)Excel的) 工程師們不可能了解所有人的需求,所以,自己的需求自己DIY。
其實(shí)就我個(gè)人而言,學(xué)VBA不是必須的。學(xué)習(xí)它只是為了當(dāng)我們遇到問題的時(shí)候,多一種解決方案。因?yàn)橛械臅r(shí)候,Excel自帶的功能,并不能完全滿足我的需求,或者實(shí)現(xiàn)的方法過于繁瑣,這就有學(xué)VBA的必要了。
比如:我們經(jīng)常遇到的問題:我有很多分店的數(shù)據(jù)要經(jīng)常統(tǒng)計(jì),但是分店的數(shù)據(jù)分別在不同的工作表或者工作簿。那這時(shí)候,不管是用函數(shù)還是Excel的內(nèi)置功能,做起來都是很麻煩的,如果用VBA呢?我們只需要編寫好一段合并工作簿或者合并工作表的代碼,輕輕一點(diǎn),任務(wù)完成!是不是很酷炫?
有朋友說了,你說了這么半天,那VBA在哪???我怎么看不見啊?
咱們剛才說了,VBA也是一種語言,那么既然是語言,就要有一個(gè)編寫這個(gè)語言的平臺,這里就牽扯到VBE的概念。
VBE全稱:Visual Basic Editor,它就是我們編輯VBA代碼的平臺,就像我們說話也是需要說話的環(huán)境的,比如:中國說漢語,美國說英語,俄羅斯說俄語等等,那么要想說Excel能聽懂的語言,就要在VBE里說,用什么說?就用VBA代碼來與Excel交流,告訴Excel你想讓它干什么(但是得遵循它的語法規(guī)則,否則它聽不懂)。
VBE就在Excel當(dāng)中,只要安裝了完整版的Office并且加載了VBA組件,那么就可以使用VBA,打開任意Excel文件,按組合鍵<ALT F11>,你就會發(fā)現(xiàn)打開了一個(gè)新的窗口,這個(gè)窗口就是VBE的界面,我們所有VBA代碼的操作,都在這里。
VBE由各種代碼窗口(為什么是各種?就算中國都說漢語,也是有地方方言的嘛)這里也是一樣,不同的代碼窗口,編寫不同類型的代碼。另外還有調(diào)試窗口(本地,立即,監(jiān)視)、工具欄、菜單欄等等組成,用于我們編寫代碼時(shí)使用。所以這里建議大家,如果想學(xué)習(xí)VBA,先了解VBE界面,就像是你要使用一個(gè)新的東西,就要先知道哪些功能在哪,否則你在用的時(shí)候就有點(diǎn)不方便了。
都說宏與VBA,那么VBA和宏到底是什么關(guān)系呢?就我個(gè)人理解:宏是什么?宏是一系列指令的集合,可以實(shí)現(xiàn)自動化。那么Excel中用什么來實(shí)現(xiàn)自動化呢?就是用VBA。那么是不是可以說,VBA就是宏在Excel中的一種體現(xiàn)方式?包括以前有“宏表”、XML映射都是實(shí)現(xiàn)自動化的方式,這個(gè)問題期待有大神給出標(biāo)準(zhǔn)的解釋。
有人問了,你說了半天都是說Excel如何如何,那只能在Excel里用嗎?這就是VBA 的方便之處了, 很多程序都可以用,比如:EXCEL、 WORD、PPT等等,應(yīng)用非常廣泛。由于都是用的VB語法,所以學(xué)習(xí)一種程序里的應(yīng)用,在別的程序中用的時(shí)候,就只需要了解這個(gè)程序的對象屬性方法就可以了,語法和編寫規(guī)則是相通的。
VBA入門很簡單,基本上入門之后就可以應(yīng)付我們?nèi)粘5墓ぷ髁?。?jīng)常會有同學(xué)問,不會英語,能學(xué)好VBA么? 我的回答都是這樣的:一種技能,能否學(xué)好,完全看你是否肯把時(shí)間花費(fèi)在這上邊,如果你可以把自己打游戲的時(shí)間,逛街的時(shí)間抽出一部分來學(xué)習(xí)一樣技能,并且持之以恒,沒有學(xué)不好的(其實(shí)我自己英語從沒及過格,但是我每天會抽出2-3個(gè)小時(shí)來學(xué)習(xí),額,關(guān)鍵是我沒有游戲天賦,不會玩游戲,王者榮耀始終呆在最強(qiáng)王者上不了榮耀~)
學(xué)員甲:怎么學(xué)VBA???
答案:多寫代碼!
學(xué)員甲:沒有那么多代碼寫啊,不知道寫什么。
答案:去論壇的函數(shù)板塊,找函數(shù)題,試著用VBA解決。
VBA是一種編程語言,如果沒有需求就沒必要學(xué),如果經(jīng)常處理重復(fù)工作或者想讓你的Excel更貼近你的工作習(xí)慣,那么可以學(xué)一下,多一種處理數(shù)據(jù)的方式選擇。
作者:隨風(fēng),腹黑未婚男,京城小正太。
聯(lián)系客服