一、什么是變量?
'所謂變量,就是可變的量。就好象在內存中臨時存放的一個小盒子,這個小盒子放的什么物體不固定。
Sub t1() Dim X As Integer 'x就是一個變量 For X = 1 To 10 Cells(X, 1) = X Next X End Sub
二、小盒子里可以放什么? '1 放數字 '如t1 '2 放文本 Sub t2() Dim st As String Dim X As Integer For X = 1 To 10 st = st & "Excel精英培訓" Next X End Sub '3 放對象 Sub t3() Dim rg As Range Set rg = Range("a1") rg = 100 End Sub '4 放數組 Sub t4() Dim arr(1 To 10) As Integer, X As Integer For X = 1 To 10 arr(X) = X Next X End Sub
三、變量的類型和聲明
'1 變量的類型
'詳見幫助文件
'2 為什么要聲明變量
'3 聲明變量
'dim public
四、變量的存活周期
'1 過程級變量:過程結束,變量值釋放
'如t1
'2 模塊級變量:變量的值只在本模塊中保持,工作簿關閉時隨時釋放
Sub t6() m = 1 End Sub Sub t5() MsgBox m m = 7 End Sub
'3 全局級變量: 在所有的模塊中都可以調用,值會保存到EXCEL關閉時才會被釋放。
' public 變量 Sub t7() MsgBox qq End Sub
五 變量的釋放 '一般情況下,過程級變量在過程運行結束后就會自動從內存中釋放,而只有一些從外部借用的對象變量才需要使用set 變量=nothing進行釋放。
公式函數
一、在單元格中輸入公式 '1、用VBA在單元格中輸入普通公式 Sub t1() Range("d2") = "=b2*c2" End Sub Sub t2() Dim x As Integer For x = 2 To 6 Cells(x, 4) = "=b" & x & "*c" & x Next x End Sub '2、用VBA在單元格輸入帶引號的公式 Sub t3() Range("c16") = "=SUMIF(A2:A6,""b"",B2:B6)" '遇到單引號就把單引號加倍 End Sub '3、用VBA在單元格中輸入數組公式 Sub t4() Range("c9").FormulaArray = "=SUM(B2:B6*C2:C6)" End Sub '二、利用單元格公式返回值 Sub t5() Range("d16") = Evaluate("=SUMIF(A2:A6,""b"",B2:B6)") Range("d9") = Evaluate("=SUM(B2:B6*C2:C6)") End Sub '三、借用工作表函數 Sub t6() Range("d8") = Application.WorksheeFunction.CountIf(Range("A1:A10"), "B") End Sub '四、利用VBA函數 Sub t7() Range("C20") = VBA.InStr(Range("a20"), "E") End Sub '五、編寫自定義函數 Function wn() wn = Application.Caller.Parent.Name End Function
'VBA第七集:VBE編輯器
'一、VBE的窗口
'1、工程窗口
'A 顯示工作簿工作表對象
'B 窗體
'C 模塊
'D 類模塊
'range("a1")=10
'對應工程窗口的對象和模板,顯示其所具體的一些特征。
'3、代碼窗口
'A 注釋文字的設置
'B 代碼縮進的設置
'C 代碼強制轉行的設置
'D 代碼運行和調試
'逐句運行
'設置斷點
'E 對象列表框和過程列表框
'4、立即窗口
'立即窗口可以把運行過程中的值立即顯示出來,主要用於程序的調試
Sub d() Dim x As Integer, st As String For x = 1 To 10 st = st & Cells(x, 1) Debug.Print "第" & x & "次運行結果:" & st Next x End Sub
'5、本地窗口
'在本地窗口中可以顯示運行中斷時對象信息、變量值、數組信息等。
Sub d1() Dim x As Integer, k As Integer For x = 1 To 10 k = k + Cells(x, 1) Next x End Sub