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
原文地址:https://www.cnblogs.com/heshun/p/12354736.html