关于VBA中,数组赋值的问题

VBA中下面代码:
Sub test()
Dim arr(), arr2(), arr3(), n
arr = Range("a1:c1") '本行可执行
arr2 = [a1:c1] '本行不可执行,报类型不匹配的错误
arr3 = Cells(1, 1).Resize(1, 3) '本行不可执行,报类型不匹配的错误
End Sub

更改为下列代码后可执行:
Sub test()
Dim arr(), arr2(), arr3(), n
arr = Range("a1:c1") '本行可执行
arr2 = [a1:c1].value '本行可执行
arr3 = Cells(1, 1).Resize(1, 3).value '本行可执行
End Sub

想问造成这种情况的原因。

类型不一样

img

Sub showType()
 Dim arr()
 MsgBox TypeName([a1:c1])'Range
 MsgBox TypeName(arr)'variant()
 MsgBox TypeName([a1:c1].Value)'variant()
End Sub


有帮助或启发麻烦点下【采纳该答案】,谢谢~~

arr2 = [a1:c1]是一个对象,你定义的时候,arr2()是一个数组,你将Dim arr(), arr2(), arr3(), n这代码去掉,不定义就不会提示类型不匹配的错误