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
想问造成这种情况的原因。
类型不一样
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这代码去掉,不定义就不会提示类型不匹配的错误