• VBA学习之基础语法(二)


    数据类型

    数据类型 存储空间(字节) 适用范围
    Byte 1 0~255
    Boolean 2 True或False
    Integer 2 -2768~32767
    Long 4
    Single 4
    Double 8 ...
    Currency(货币型) 8 ...
    Decimal(小数型) 14 ...
    Date 8 ...
    String 字符串长度 1-65400字符
    Object 4 对象变量,引用对象
    Variant(变体型) ... ...

    数组

    同种类型的多个变量的集合

    • 创建数组

      • 声明数组

        除了要指定数组名称及数据类型,还应指定数组的大小

        Public | Dim arrayName(a To b) As typeOfData
        '不同的语句声明的数组作用域不同
        'a和b为数组的起始和终止索引,都为整数,用此方法声明,索引是从a开始
        '存储元素个数为(b-a+1)
        Dim arr2(49) As String
        '索引0开始,49终,共(49-0+1)50个
        

        注:若模块的第一句写上Option Base 1,即使用上述第二种方法声明数组,索引从1开始

      • 数组元素的赋值

        要分别给数组里的每个元素赋值,赋值的方法与给变量赋值相同

      • 多维数组

        • 二维:在一个工作表内,行与列的关系可视为一个二维数组,如行表示一层货架,而每个单元格表示为该层陈列的每个商品;列则表示该货架有多层。

        • 三维:在一个工作簿内,每个单独的工作表(sheet)代表一个货架;该货架有多层(列),每层有多个商品(单元格)

        • ...

        • 声明多维数组

          Dim arrayName(a To b, c To d) As String	
          Dim arrayName(1 To 3, 1 To 4) As String '声明一个3x4的二维数组,索引从1开始
          Dim arrayName(2, 3)	As String '声明一个3x4的二维数组,索引从0开始
          Dim arrayName(1, 2, 3) As String '声明一个2x3x4的三维数组
          ...
          
      • 声明动态数组

        暂时将要声明的数组的元素个数留空,后面再以ReDim语句重新指定数组大小

        '统计A列有多少个非空单元格'
        Sub demo()
            Dim arr() As String
            Dim n As Long
            n = Application.WorksheetFunction.CountA(Range("A:A"))
            ReDim arr(1 To n) As String	'重新定义数组大小
        End Sub
        
      • 其他创建数组方式

        • Array函数

          需要先声明变量,变量类型必须为Variant(不懂为什么...)

          使用Array创建的数组索引默认以0开始,除非开头声明Option Base 1

          Dim arr As Variant	'声明变量
          arr = Array(1,2,3,4,5,6,7)	'赋值,若无参数则返回空数组
          
        • Split函数

          Split将一字符串按照指定的分隔符分隔开,返回一个一维数组,索引从0开始;即使Option Base 1,索引依然从开始

          Public Sub splitTest()
              Dim arr As Variant, str As String
              str = "张三,李四,王五"
              arr = Split(str, ",")
              MsgBox "arr的第二个元素是" & arr(1)
          End Sub
          
        • Range对象

          使用Range将一个单元格区域的值直接存储到数组变量中,返回的数组索引是从1开始

          Public Sub rangeTest()
              Dim arr As Variant
              arr = Range("B2:B5").Value
              ' MsgBox "arr的第三个元素为" & arr(1)
              Range("H2:H5").Value = arr
              MsgBox "有几位:" & UBound(arr) - LBound(arr) + 1 & Chr(13) & "最大索引号是:" & UBound(arr) & Chr(13) & "最小索引号是:" & LBound(arr)
          End Sub
          
  • 相关阅读:
    SQL通用数据类型
    SQL基础
    软件测试相关(1)
    C语言——判断
    C语言新手教程——计算
    并查集
    洛谷-P1551 亲戚
    洛谷-P1536 村村通
    洛谷-P1525 [NOIP2010 提高组] 关押罪犯
    洛谷-P2814 家谱
  • 原文地址:https://www.cnblogs.com/NoTrace/p/13627347.html
Copyright © 2020-2023  润新知