Excel VBA 入門

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
相關文章
相關標籤/搜索