数组差别
VBA
数组如何创建
数组声明
数组赋值
Dim arr(),brr
arr = [...] ►报错:类型不匹配
arr = Range(...) ►赋值成功
brr = [...] ►赋值成功
arr = Sheets(...).Range(...) ►报错:类型不匹配
arr = Sheets(...).Range(...).Value ►赋值成功
以上5种数组赋值行为,为什么有两种会报错而其他能成功呢?
你好,我刚试了下
前3条里,数组赋值问题,VBA里不能写成[1,2,3] 需要写成[{1,2,3}] 这样。和python写法不同,[{1,2,3}] 用arr,brr都是可以的
后面2个,主要是因为range()可以直接赋值给变量brr,但是不能直接赋值给数组arr(),确实有点恶心。
而且第3行可以,但是第5行不可以,无非解释,非常无语
感觉VBA太。。。。
Sub test201()
'Dim arr(),brr
'arr = [...] ?报错:类型不匹配
'arr = Range(...) ?赋值成功
'brr = [...] ?赋值成功
'arr = Sheets(...).Range(...) ?报错:类型不匹配
'arr = Sheets(...).Range(...).Value ?赋值成功
Dim arr(), brr
' ReDim arr(0 To 2)
' arr = [1,2,3]
' Debug.Print arr(0)
arr = [{1,2,3}]
For Each i In arr
Debug.Print i
Next
Debug.Print arr(1)
arr = Range("a1:b2")
For Each i In arr
Debug.Print i
Next
Debug.Print arr(1, 1)
brr = [{1,2,3}]
For Each i In brr
Debug.Print i
Next
Debug.Print brr(1)
''' brr = [1,2,3]
''' Debug.Print brr
' arr = Sheets("sheet1").Range("a1:b2")
brr = Sheets("sheet1").Range("a1:b2")
For Each i In brr
Debug.Print i
Next
Debug.Print brr(1, 1)
' arr = Sheets("sheet1").Range("a1:b2")
' For Each i In arr
' Debug.Print i
' Next
' Debug.Print arr(1, 1)
arr = Sheets("sheet1").Range("a1:b2").Value
For Each i In arr
Debug.Print i
Next
Debug.Print arr(1, 1)
Debug.Print TypeName(Range("a1:b2"))
Debug.Print TypeName(Sheets("sheet1").Range("a1:b2"))
Debug.Print TypeName(Sheets("sheet1").Range("a1:b2").Value)
Debug.Print TypeName([1,2,3])
Debug.Print TypeName([{1,2,3}])
Debug.Print TypeName(Array(1, 2, 3))
'' arr = Range("a1:b2")
'' arr = Sheets("sheet1").Range("a1:b2")
End Sub
VBA里
确实有太多,比较模糊,不好做莫的东西
数组内容
数组遍历
数组打印
python
数组,数组和字符串