VBA 變量、函數、公式


一、什么是變量?

'所謂變量,就是可變的量。就好象在內存中臨時存放的一個小盒子,這個小盒子放的什么物體不固定。

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM