1. 程式人生 > >Excel之VBA簡單巨集程式設計

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 游標處新增斷點
除錯->新增監視 新增監視

·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·