Excel的VBA初识

变量数组

'强制变量申明
Option Explicit
'申明全局变量在其他模块也可以用
Public Price As Double

Sub 变量()
    'Byte 整数0-255
    'Boolen bool值
    'Integer 整数-32768-32767,long整数,Currency整数
    '小数:Single,Double
    '日期:Date,字符String
    
    Dim Dc
    Dc = 1
    '弹窗
    MsgBox Dc
    Dc = "Hello"
    MsgBox Dc
    
    
    Dim score As Date, word As String
    score = #1/1/1900#
    word = "Hello world"
    MsgBox score & word
    '按方块键和关闭安文档会停止存储
    Static Count As Integer
    Count = Count + 1
    MsgBox "" & Count & ""
End Sub

常量

Sub SSS()
    'Price = 5.6
    'MsgBox Price
    '常量开始就要赋值,不能改变
    Const P As Double = 3.5
    Dim res
    res = P ^ 4
    '比较运算> >= <= = <>:不等于
    '逻辑运算符 And Or Not
    res = 2
    '条件
    'If res = 1 Then
    '    MsgBox 1
    'ElseIf res = 2 Then
    '    MsgBox 2
    'Else
    '    MsgBox 3
    'End If
    '相同用法
    'Select Case res
    '    Case Is >= 90
    '        MsgBox "good"
    '    Case Is >= 80
    '        MsgBox "well"
    '    Case Else
    '        MsgBox "bad"
    'End Select
    
    'For循环
    'For Num = 1 To 5
    '    res = res + Num
    '    Next Num
    'MsgBox res
    
    '循环跳两次
    For Num = 1 To 5 Step 2
        If Num >= 5 Then
        'Exit for 中断循环
            Exit For
        End If
    '    MsgBox Num
        res = res + Num
        Next Num
   'MsgBox res
    
    Dim mum As Integer
    'DoWhile循环
    'Do While mum <= 10
        'MsgBox mum
     '   mum = mum + 1
    'Loop
    
    mun = 0
    'do Until循环
    Do Until mum > 10
        mum = mum + 1
        MsgBox mum
    Loop
    '中断子程序
    Exit Sub
    
End Sub

函数

Option Explicit

Sub SubTest(Num As Integer)
    For Num = 1 To Num
        MsgBox Num
        Next Num
End Sub

Sub SubTesttwo(Num As Integer, two As Integer)
    Do While two <= Num
        MsgBox two
        two = two + 1
    Loop
End Sub

Sub Test()
    'SubTest (2)
    SubTesttwo 3, 1
    Dim Value As Double
    Value = Cube(1, 5)
    MsgBox Value
    
End Sub

'这个函数也可以在在
Function Cube(x As Integer, y As Integer)
    Cube = x + y
End Function

数组

'设置数组第一位索引值为1
Option Base 1

Sub ArrayTest()
    '一维数组
    Dim MyArray(1 To 3) As Integer
    
    'LBound为数组初始值,UBound为数组
   ' For Index = LBound(MyArray) To UBound(MyArray)
    '    MyArray(Index) = Index
     '   MsgBox MyArray(Index)
      '  Next Index
    
    Dim newArray(3) As Integer
    For Index = LBound(MyArray) To UBound(MyArray)
        'MsgBox Index
        Next Index
    '二维数组(行,列)
    Dim lll(1 To 2, 1 To 3) As Integer
    
    '获取行最小和最大小标
    For Row = LBound(lll, 1) To UBound(lll, 1)
        For low = 1 To 3
            lll(Row, low) = Row + low
           ' MsgBox lll(Row, Low)
            Next low
        Next Row
    
    '动态数组
    Dim dotai() As Integer
    '定义动态数组大小
    ReDim dotai(1 To 3)
    '定义动态数组大小,之前的定义和赋值会被抹除
    ReDim dotai(1 To 3, 1 To 2)
    For roow = LBound(dotai, 1) To UBound(dotai, 1)
        For low = 1 To 2
            dotai(roow, low) = roow + low
            MsgBox dotai(roow, low)
            Next low
        Next roow
    '定义动态数组大小,之前的定义和赋值不会被抹除
    ReDim Preserve dotai(1 To 3, 1 To 2)
End Sub

返回目录

posted @ 2024-10-13 21:21  微纯册  阅读(30)  评论(0编辑  收藏  举报