在我們的工作中,經(jīng)常需要手工完成一些有規(guī)律的、重復(fù)性的任務(wù),或者處理一系列的固定工作,利用VBA就可以對數(shù)據(jù)進行更高級的處理,實現(xiàn)數(shù)據(jù)處理的自動化,從而省去簡單重復(fù)的工作。
說到VBA,不得不說另一個與它有密切關(guān)系的工具:宏。Office中的辦公組件都支持VBA和宏。
VBA是一種內(nèi)置在Excel中的編程語言,可以用來編寫程序代碼,二次開發(fā)系統(tǒng)本身所不具備的功能;
宏是一種用VBA語言編寫的運算過程,是錄制的程序。
在實際工作中,可能每天都要打印上千張發(fā)票、統(tǒng)計銷售業(yè)績等,要完成同樣的工作,既可以用VBA編寫代碼實現(xiàn),又可以通過錄制宏來實現(xiàn)。錄制的宏其實就是一堆VBA指令,并且可以通過VBA來修改,但是有些操作是不能通過錄制宏來實現(xiàn)的。
錄制的宏可能很長,效率很低,而經(jīng)過優(yōu)化的VBA代碼簡潔,效率更高,VBA能夠?qū)崿F(xiàn)宏所能實現(xiàn)的全部功能。
在使用宏和VBA時需要在【開發(fā)工具】選項卡下單擊相關(guān)按鈕完成工作,如果在主選項卡區(qū)域沒有【開發(fā)工具】選項卡,可以選擇【文件】→【選項】選項,在彈出的【Excel選項】對話框中進行設(shè)置。在【Excel選項】對話框左側(cè)選擇【自定義功能區(qū)】選項卡,選中【主選項卡】下的【開發(fā)工具】復(fù)選框,單擊【確定】按鈕保存設(shè)置,如下圖所示,即可在主界面上顯示【開發(fā)工具】選項卡。
下面以任務(wù)驅(qū)動的方式介紹如何用宏和VBA解決實際問題。
例如,“超市商品每日銷售表”已知單價和銷售數(shù)量,計算每件商品的銷售金額。
用宏工作,兩步可以解決問題:錄制宏、運行宏。錄制宏就是把完成任務(wù)的過程操作一遍并錄制下來。步驟01 單擊H2單元格,首先要開啟【開發(fā)工具】選項卡【代碼】組中的【使用相對引用】功能,這樣以后在當前錄制過程中未處理過的單元格區(qū)域也能按照目標單元格與數(shù)據(jù)源單元格的相對位置計算銷售金額,如下圖所示。步驟02 然后單擊【開發(fā)工具】選項卡【控件】組中的【插入】按鈕,在彈出的下拉列表的【表單控件】選項區(qū)域中選中第一個按鈕控件,如下圖所示。步驟03 在H列右邊空白區(qū)域拖曳鼠標畫出一個【按鈕】,松開鼠標后彈出【指定宏】對話框,修改【宏名】為【計算銷售金額】,單擊【錄制】按鈕,然后單擊【確定】按鈕開始錄制操作過程,如下圖所示。步驟04 操作過程結(jié)束后,選擇【開發(fā)工具】選項卡下【代碼】組中的【停止錄制】按鈕,錄制結(jié)束,如下圖所示。步驟05 如果想查看錄制過程中自動生成的代碼,在【按鈕3】控件上右擊,單擊【開發(fā)工具】選項卡【控件】組中的【查看代碼】按鈕,打開VBA代碼窗口,如下圖所示。宏錄制后就可以執(zhí)行宏了,回到工作表中,把H2:H14單元格區(qū)域的值刪除掉,然后重新選中H2:H14單元格區(qū)域,單擊【按鈕3】按鈕,系統(tǒng)自動計算并填充銷售金額的值。如果從第15行開始記錄當天的商品銷售情況,系統(tǒng)還能不能自動計算并填充銷售金額的值呢?通過試驗發(fā)現(xiàn)當選中H15單元格,單擊【按鈕3】按鈕后,能自動處理,但是填充了錄制宏時處理的H2:H14單元格區(qū)域的銷售金額,這不是想要的結(jié)果,但宏代碼是可以在代碼窗口中修改的。如果只想求出有商品銷售記錄的那行銷售金額的值并填充,沒有銷售記錄的空行不顯示“0”怎么辦呢?下面的“VBA”部分將介紹如何修改代碼以達到預(yù)期效果。 VBA的初學(xué)者往往是從錄制宏后查看代碼、一點點修改代碼開始學(xué)習的。為了實現(xiàn)上述功能,可以利用掌握的函數(shù)知識修改宏錄制時自動生成的代碼。例如,把原來的“Range('A1:A13')”改為“Range('A1:A100')”,這樣計算區(qū)域可以擴大到1~100行;不想顯示空行的銷售金額“0”,可以把原來的“ActiveCell.FormulaR1C1 = '=RC[-2]*RC[-1]'”改為“ActiveCell.FormulaR1C1 = '=if(RC[-2]*RC[-1]=0,clean(RC[-1]),RC[-2]*RC[-1])'”。修改后保存,關(guān)閉代碼窗口,如下圖所示。如果不從錄制宏開始,怎么直接寫VBA代碼、查看代碼、運行代碼呢?首先,要放一個或若干個觸發(fā)VBA代碼的控件在工作表中。單擊【開發(fā)工具】選項卡下【控 件】組中的【插入】下拉按鈕,在彈出的下拉列表的【表單控件】選項區(qū)域中選擇需要的控件,然后拖曳鼠標在工作表中規(guī)劃好的位置上畫出該控件。 其次,給控件添加代碼。右擊選中該控件,單擊【開發(fā)工具】選項卡下【代碼】組中的【Visual Basic】按鈕,打開代碼窗口。在“Sub 控件名 … End Sub”結(jié)構(gòu)中輸入符合VBA語法規(guī)則的指令代碼,如下圖所示,保存代碼,關(guān)閉代碼窗口回到工作表中。最后,執(zhí)行VBA代碼。只要單擊相應(yīng)控件就能自動完成事先設(shè)計好的功能。如果要修改和查看代碼,利用【開發(fā)工具】選項卡下的【查看代碼】和【Visual Basic】按鈕都可以重新打開代碼窗口。學(xué)習VBA要學(xué)很多內(nèi)容,如VBA編輯器、語法規(guī)則、數(shù)據(jù)類型、程序結(jié)構(gòu)的控制、過程和函數(shù)、常見對象等。熟練掌握VBA后,小能處理用一般函數(shù)等現(xiàn)有工具無法解決的問題,大能設(shè)計一個管理系統(tǒng)。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。