Excel之VBA簡單巨集程式設計
Excel之VBA簡單巨集程式設計
excel是一款很經典的資料分析的工具,裡面包含了很多內建函式,但實際情況有時卻複雜得多,而excel的巨集程式設計提供了自定義函式的功能,正好有老師需要幫忙做一些資料分析,就學習了一下,下面是我的學習筆記。本人使用的是excel2013。有出入的地方可以參考。
1、準備工作
- 開啟開發工具面板(excel的主選項卡預設是沒有開發工具選項卡的)
檔案->選項->自定義功能區->
這時候主選項卡就有開發工具項了
- 進入vba編輯
點選visual basic進入
在VBAProject上右鍵->插入->模組
出現一個編輯檔案如下圖
然後就可以在這裡寫入vba程式碼。
2、VBA程式設計
2.1模組宣告
類似於一個程式,一個模組要有一個主程式入口即模組宣告,如
Sub sname()
··· ···
End Sub
2.2變數宣告及賦值
宣告格式為:
Dim ‘變數名稱’ As ‘變數型別’
如
Dim i As Integer
Dim str As String
賦值格式為:
i = 3
str = “hello world!”
直接等號賦值
資料型別 | 定義符號 | 備註 |
---|---|---|
字串 | String | |
整型數字 | Integer | -32768~32767 |
長整型數字 | Long | -2147483648~2147483647 |
單精度浮點型數字 | Single | 精度為6 |
雙精度浮點型數字 | Double | 精度為14 |
日期型 | Date | |
布林型 | Boolean | |
變體型 | Variant | 萬用的型別,儘量避免使用 |
物件型 | Object | 沒有深究 |
列舉型 |
列舉型別資料定義格式:
Public|Private Enum 變數名
成員1[=常數表示式1]
成員1[=常數表示式1]
··· ···
End Enum
例如:
Public Enum WorkDays
星期日
星期一
星期二
星期三
星期四
星期五
星期六
End Enum
2.3if-else結構
If ······ Then
  ······
ElseIf ······ Then
  ······
Else
  ······
End If
2.4迴圈結構
Do While ······
  ······
Loop
For i = 0 To 100 Step 1
  ······
Next i
跳出for迴圈可以用 Exit For
2.5比較運算子
名稱 | 運算子 |
---|---|
等於 | = |
不等於 | <> |
小於 | < |
小於等於 | <= |
大於 | > |
大於等於 | >= |
字串匹配 | Like |
2.6註釋
VBA裡的單行註釋以單引號'
標識
3、常用功能
3.1獲取表格資料
- 獲取第i行j列單元格資料
Sheets(‘表格名’).Cells(i,j).Value
- 獲取第i行資料
Sheets('表格名').Rows(i)
- 獲取第j列
Sheets('表格名').Columns(j)
- 獲取一塊
Range("a1:b60")
3.2複製單元格且保留原單元格列寬
Sheets(name_1).Cells(i, k).copy
Sheets(name_result).Cells(i,k).PasteSpecial xlPasteColumnWidths
3.3設定單元格、某一行或某一列顏色
Sheets(name_1).Rows(i).Interior.ColorIndex = 3'
Sheets(name_1).Rows(i).Font.ColorIndex = 1
Sheets(name_1).Cells(i,j).Interior.ColorIndex = 3'
Sheets(name_1).Cells(i,j).Font.ColorIndex = 1
3.4獲取表格有用列數和有用行數
irows1 = Sheets(name_1).UsedRange.Rows.Count
icolumns1 = Sheets(name_1).UsedRange.Columns.Count
4、除錯執行
快捷鍵 | 功能 |
---|---|
F8 | 逐語句執行 |
Shift+F8 | 逐過程執行 |
Ctrl+F8 | 執行到游標處 |
F9 | 游標處新增斷點 |
除錯->新增監視 | 新增監視 |
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·