数组的声明
动态和静态
VBA中声明变量可以直接赋值指定类型。(有疑问)
Dim arr(1 To 10, 1 To 2)
redim arr()
保留原数据变动数组容量
redim preserve arr()
TimeVlaue函数返回Date类型
Sub arraygetvalue()
'所谓下标(subscript)就是编号,
'下界上界是指编号的起止。 the largest/smallest available subscript,
'实际上,数组arrayexample(10)的容量是+1=11,因为下标是从0开始的。
'还有数组的声明和改变大小
'多维数组和数组的维ubound得到的是上界的编号,不是成员数量
'所谓下标(subscript)就是编号,
'下界上界是指编号的起止。 the largest/smallest available subscript,
'实际上,数组arrayexample(10)的容量是+1=11,因为下标是从0开始的。
Dim arr1(10)
'查看到这个下界和上界
Debug.Print LBound(arr1) '0
Debug.Print UBound(arr1) '10
arr1(0) = 1
arr1(10) = 11
Debug.Print arr1(0)'1
Debug.Print arr1(10)'11
End Sub
Ubound与多维数组
Sub arrytest()
Dim upper
'定义一个三维数组,每个维度里的编号分别是1-10,5-15,10-20
Dim myarray(1 To 10, 5 To 15, 10 To 20)
'定义一个一位数组,编号是0-9
Dim anyarray(10)
upper = UBound(myarray) '默认是1,第一维的上界
Debug.Print upper '10
Debug.Print anyarray(1);
upper = UBound(anyarray, 1) '第一维的上界
Debug.Print upper '10
End Sub
TimeValue返回Date类型数据。参数是时间字符串或者Date类型数据。Date类型不仅仅是日期也包括纯粹的时间格式。比如,#12:00:00#这样的写法是Date类型。如果是"12:00:00"用引号,是字符串。但是都能返回正确的日期格式。
Sub timevaluetest()
Dim time
time = #12:00:00 PM# '数据本身是date
Debug.Print time '12:00:00
Debug.Print TypeName(time) 'Date
time2 = "12:00:00 PM" '数据本身是字符串
Debug.Print TypeName(time2) 'String
Dim totimevalue
totimevalue = timevalue("12:00:00 PM") 'timevalue的返回值是Date
Debug.Print TypeName(totimevalue) 'Date
End Sub