(一)什么是VBA?什么是宏?
VBA (Visual Basic For Application)是一種編程語言,是建立在Office中的一種應用程序開發工具。可以利用VBA有效地擴展Excel的功能,設計和構建人機交互界面,打造自己的管理系統,幫助Excel用戶更有效地完成一些基本操作、函數公式等不能完成的任務,從而提高工作效率。顧名思義,VBA使用的編程語言是VB。
VBA是編程語言,宏是用VBA代碼保存下來的程序。錄制的宏只是VBA里最簡單的程序,正因為如此,錄制的宏存在許多的缺陷:如無法進行判斷和循環,不能顯示用戶窗體,不能進行人機交互……要想打破這些局限,讓自己的程序更加自動化和智能化,僅僅掌握錄制和執行宏是遠遠不夠的,還需要掌握VBA編程的方法,自主地編寫VBA程序。這就是我們學習VBA的目的。
(二)VBA的一個簡單應用
圖1 圖2
如圖1所示的表格,現在需要將其制作為圖2所示的工資條,發給每名員工。你會怎么做?
方法一:復制第一行,不停地粘貼該行。問題是數據量較少時,10、20、50,甚至100這種方法都還能接受,數據量突破200時就顯得特別笨了。
方法二:錄制宏
錄制宏簡單而言就是將重復的操作合並為一個動作,然后不斷重復該動作。
錄制宏前需要如下操作進入宏的錄制:
以本題而言,需要集合的操作為 選中目標行——復制——選中要粘貼的位置——復制——選中控制單元格,宏的錄制過程即如下:
這樣就將一系列的操作整合為了這樣一個宏操作,相當於每執行一次宏就執行了一次上面的所有的操作。可以給宏設置快捷鍵。如圖
點擊確定后就將ctrl+p設為了名為“生成工資條”的宏的快捷按鍵,每按一次就執行一次宏。
通過錄制宏大大簡化了操作,但仍然比較繁瑣,如果有1000條數據,需要按鍵1000次,如果有2000,5000呢?有沒有更方便的方法呢?
方法三:錄制宏+VBA編程
在方法二的錄制宏的基礎上繼續改進,采用VBA編程的方法。
首先點擊宏——查看宏,點擊“編輯”
進入VBA編程的代碼查看界面
上圖是VBA編程界面,代碼完全是錄制的宏對應的代碼。如下:
現在我們需要對這段代碼進行修改,直接完成方法二中所需要進行的多次按鍵操作。共需要修改兩處。
第一處:
在Sub 宏名():下面加上如圖兩行,其中1 To 259 根據實際數據行數進行變化。
第二處:
在End Sub前加上一行Next,使得代碼循環。
更改后代碼為:
保存代碼后,點擊宏——查看宏——運行。直接生成所有需要的工資條。
(三)總結
初次認識了宏和VBA編程,通過簡單例子顯示了宏及VBA編程的高效,尤其針對大量數據的重復性操作,可以起到指數級的速度提升。