1、文件格式javascript
要使用VBA,excel文件必須保存爲啓用宏的工做簿,即xlsm格式。java
2、啓動VBA編輯器編程
打開工做簿後,要啓動VBA編輯器,有兩種方法,一是在工做表的名字上面點擊右鍵,選擇「查看代碼」,另外一種就是快捷鍵Alt+F11編程語言
3、工程資源管理器簡介編輯器
VBA編輯器右邊的樹形目錄就是工程資源管理器,以下圖,列示了一個工程(VBAProject)及其下面的各個對象。一個工做簿就是一個工程,下面的sheet1就表明一張工做表,雙擊它能夠查看和編輯這張工做表的代碼,在裏面實現各類功能,ThisWorkbook表明整個工做簿。oop
4、當即窗口、MsgBox與Hello World程序spa
與全部其它編程語言入門同樣,第一個程序都是輸出一句話:Hello World。3d
首先選擇菜單欄——視圖——當即窗口打開當即窗口(快捷鍵Ctrl+G),當即窗口的意思就是這裏面的代碼在輸入回車以後會被當即執行,有點像調試javascript的Console。調試
在窗口中輸入excel
MsgBox "Hello World"
而後回車,就會看到hello world對話框。
5、工做表——Worksheets(1)、Sheets(1)和Sheet1
下面三行代碼都會輸出工做表1的名稱:
MsgBox Worksheets(1).name MsgBox Sheets(1).name MsgBox Sheet1.name
Worksheets表示當前活動工做簿中全部工做表的集合,Worksheets(1)表示集合中的第1張工做表,也就是Sheet1
Sheets表示當前活動工做簿中全部圖表(Charts)和工做表(Worksheets)的集合,也就是說Sheets包含上面的Worksheets
Sheet1直接表示當前活動工做簿中的第一張表
6、區域——Range
好比,Range("A1")表示A1單元格,Range("A1:B2")表示由A一、A二、B一、B2四個單元格組成的區域,以此類推;若是要表示不連續的區域,將多個不連續區域用逗號隔開便可,好比Range("A1:B2,C3:D4")
如下代碼輸入區域的地址:
MsgBox Sheet1.Range("A1:B2").Address
運行結果如圖:
7、單元格——Cells
Cells(1,2)——表示第1行第2列的單元格,即B1單元格。
Cells(1,2) = 「我是一個單元格」——表示在第1行第2列填上文本「我是一個單元格」
8、流程控制語句
If condition Then
...
End if
---------------------------------------
If condition Then
...
Else
...
End if
----------------------------------------
If condition Then
...
ElseIf condition Then
...
Else
...
End If
-----------------------------------------
For i=0 to 100
...
Next
-----------------------------------------
While condition
...
Wend
-----------------------------------------
Do
...
Loop While condition
-----------------------------------------
9、複製
單元格複製:
Cells(1,2).Copy Cells(1,3)
以上代碼將第1行第2列的數據複製到第1行第3列
---------------------------------------------------------
區域複製:
Range("A1:B2").Copy Range("C3")
以上代碼將A1:B2區域的內容複製到C3區域
----------------------------------------------------------
行或列複製:
Rows(1).Copy Rows(2) Columns(3).Copy Columns(4)
將第1行的數據複製到底2行
將第3行的數據複製到第4行
----------------------------------------------------------
10、清除——Clear和ClearContent
Range(A1:B2).ClearContent '清除區域內容 Range(A1:B2).Clear '清除區域,包括內容和格式等
11、行和列自適應高(寬)度
Rows.AutoFit
Columns.AutoFit
12、跳轉到某工做表
跳轉到某工做表即激活某個工做表,使它變成活動狀態:
Sheet2.Activate
十3、事件
好比要實現雙擊Sheet1單元格A1時彈窗提示good,那麼在工程資源管理器中雙擊Sheet1,打開Sheet1的代碼窗口,窗口頂部第一個下拉菜單選擇worksheet,第二個下拉菜單選擇BeforeDoubleClick,這時代碼窗口就會出現這樣一段代碼:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) End Sub
這段代碼表示Sheet1工做表任意地方被雙擊時會執行的操做,但咱們要的是A1單元格被雙擊時彈窗,那麼還要對被雙擊的地方進行判斷,被雙擊的目標即參數中的Target,咱們根據地址判斷Target是否是A1,是就彈窗提示,不是就不執行任何操做:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$A$1" Then MsgBox "good" End If End Sub