VBA数组的定义与赋值
Sub 数组练习()
Dim ArrA() As String
ReDim ArrA(3)
ArrA = [{"A","B","C","D"}]
End Sub
还有,将数组变量ArrA声明为String,用Array函数给ArrA赋值,运行也出现"类型不匹配",将其声明成Variant时,运行就正常。为什么啊?Array函数返回值是Variant啊,为何不能将ArrA声明成String啊?
Sub 数组()
Dim ArrA() as string
ArrA=Array("a","b","c","d")
End Sub 展开
可直接定义,但是不能直接赋值,可参考以下代码:
1、Dim arr(1 to 3) as string
如此定义,但是不能直接给数组赋值
如果想直接给数组直接赋值,需要如下操作:
Dim arr() as Variant
arr=Array("a","b","c")
2、Dim A As Variant
A = Array(10,20,30)
B = A(2)
array函数返回的是变体型,要用该函数是不能给数组变量赋值
扩展资料:
VBA的常用内置函数:
MsgBox
InputBox
舍入函数:Fix 向0取整,Int向下取整, Round四舍五入
Rnd: 返回0-1内的单精度随机数
字符串函数:
Filter:对字符串的一维数组的过滤
InStr([Start, ]<Str1>,<Str2>[, Compare])与InStrRev: 查找子串
Len:字符串长度
Join:连接一维数组中的所有子字符串
Left,Right,Mid: 截取子字符串
Space(数值) :生成空格字符串
Ucase,Lcase:大小写转换函数
Ltrim, Rtrim,Trim :删除首尾空格
Replace
Split:分割一个字符串成为一维数组
StrComp:字符串比较
StrConv:字符串转换
String(number, character):制定字符重复若干次
参考资料来源:百度百科-VBA (Visual Basic宏语言)
Sub Test()
Dim Arr(1 To 9) As Integer '定义一个下标为1,上标为9的整型数组
Dim Brr(9) As String ''定义一个下标为0,上标为9的整型数组。这里的默认下标可以在模块中用 option base来声明数组下标的缺省下界,默认是0
Dim Crr(9, 1 To 9) As String '定义了一个二维字符型数组,第一维下标为0,上标为9,第二维下标为1,上标为9
Dim Drr As Variant '定义了一个变体类型
Dim Frr() As Long ''定义一个数组,但维度和上下标未明确
Arr(9) = 9 '元素赋值
Brr(0) = "0" '元素赋值
Crr(1, 1) = "A"
Drr = Crr 'drr(1,1)="A"
ReDim Frr(10) As Long '重新定义了Frr数组的维度和上下标
ReDim Frr(1 To 10, 1 To 10) '再次重新定义Frr数组的维度和上下标
Frr(1, 10) = 110 '元素赋值
ReDim Preserve Frr(1 To 10, 1 To 11) '重新定义数组最后一维的大小,并保持原有数据,此时 Frr(1,10)还是 110
End Sub
private sub cmdOk_click()
dim a as control
for each a in me.controls
if left(a.name,3)="sum" and a.value ="" then a.value=0
next
end sub
Dim arr(1 to 3) as string
如此定义,但是不能直接给数组赋值
如果想直接给数组直接赋值,需要如下操作:
Dim arr() as Variant
arr=Array("a","b","c")
Array函数的返回值为variant,不包括string类型吗?为何不能直接赋值呢?