excel工作表與VBA代碼:
VBA代碼的編寫環境叫做VBE
英語:visual basic environment
從excel工作表切換到VBE中,快捷鍵是:alt+F11
含有宏程序的excel文件不能用后綴名為xlsx保存,必須用xlsm的后綴名保存。
帶有宏程序的文件,初次打開會提示用戶是否啟用(編輯)功能。
用戶也可以在<開發工具>中的<宏>功能,去重新啟用宏功能。
錄制宏:打開<開發工具>選項卡<錄制宏>功能,在彈出的對話框中輸入宏的名稱,說明,執行時的快捷鍵,宏程序的保存位置。在編輯工作表結束后,再次點擊<停止錄制>。把錄制宏應用到其他工作表中,只需要按下剛才設置的快捷鍵。
使用相對引用來錄制宏:打開<開發工具>,點擊<使用相對引用>,然后點擊<錄制宏>。相對引用可以讓我們從同一個工作表中多次執行相同步驟的操作。將自定義的操作應用到不同的行或列,比如可以很方便的隔行去應用自己設置的樣式。
英文狀態下的單引號表示注釋的符號,綠色文字部分表示注釋。
要學會查看VBA代碼,如圖:
接下來,學習通過表單控件運行宏。
在<開發工具>中的<插入>中的<表單控件>,選擇一個按鈕。在彈出的對話框中選擇要執行的宏。
移動按鈕:右鍵一下,然后按住左鍵拖動。
注意:宏操作是不能撤回的,不可以按ctrl+z撤回。
通過快速訪問工具欄運行宏:
首先在excel選項后台中,點擊<快速訪問工具欄>,把宏添加進去,設置好圖標。
保存宏到個人工作簿:
如果01工作簿中沒有宏,02工作簿中有宏,01的工作表想要應用02中的宏,就需要打開02工作簿。
如果把錄制的宏保存到個人宏工作簿中,01中的工作表再想應用宏,就不用打開02了。
個人宏工作簿,excel默認保存的文件名為 personal.xlsb ,個人宏工作簿默認是隱藏的,必要時需要用<視圖>下的<取消隱藏>讓他顯示出來。
個人宏工作簿是專門用來保存宏程序的文件,宏程序保存到個人宏工作簿之后,其他的工作簿文件是默認可以調用的。
VBA代碼編輯:
插入模塊,就是插入相應的宏代碼。如圖:
右鍵,可以移除VBA代碼模塊,可以導出到其他位置,可以導入。
編寫一個簡單的VBA代碼:
第二個:
VBA程序的變量類型:
VBA程序的執行方式:
一個模塊中允許有多個sub子程序。
光標定位到第一個sub子程序中,然后點擊運行,就會執行第一個。
光標定位到第二個sub子程序中,點擊運行按鈕就會執行第二個。
也可以打開<視圖>中的<立即窗口>,在立即窗口中用命令<call 子程序名>運行。
VBA程序中多個變量的定義:
variant可變數據類型:
強制變量聲明:
變量的生命周期:也就是不同的變量定義方式,他的作用范圍不同。如圖:
如果編寫的VBA代碼中有循環執行的結構,如果需要重置,讓程序重新從0開始,要點擊VBE界面左上角的<重新設置>。
static變量:
由關鍵字static定義的變量,在子程序中執行完一次后並不會失效,他會循環執行下去。
常量的定義:
使用關鍵字:const 定義,常量的生命周期與變量相同,如果只在子程序sub內定義,則他的作用范圍就是子程序內部。如果想讓同一個模塊內的所有子程序都可以使用定義的常量,就需要把定義寫在子程序外部。如果想讓同一工作簿下的所有模塊都可以使用定義的常量,則需要加上關鍵字:public
ActiveCell :活動單元格
Interior.color:內部顏色常量
vbRed:紅色
?vbRed:通過立即窗口查詢Red代碼數字。
數學運算符:
比較運算符:
邏輯運算符:and or not
VBA命名規范:
if選擇結構:
select選擇結構:
for next循環結構:
step關鍵字的使用:
如何中斷for循環:
嵌套for循環:
do while循環結構:
do until循環結構:
無參數的子程序:
有參數的子程序:
通過參數調用,實現不改變原代碼的情況下,進行求值。
用戶自定義函數:
可以直接在單元格中進行調用,也可以在<函數>中找到函數分類中的<自定義函數>
一維數組:
第一種定義方式:
第二種定義方式:
如果沒有聲明option base = 1 ,則表示數組下標從0開始。
二維數組:
動態數組:
VBA面向對象:
對象的層級架構:
根據對象的層級架構給單元格賦值:
單元格的引用:
單元格引用之cells屬性:
cells(2,3)表示第2行,第3列數據。
offset屬性:
offset(2,3)表示距離某個單元格的偏移量。
select方法/activate方法:
range的end屬性: