Function test1()
Dim ar
' ar = Sheets(1).Range("a1").Resize(20, 1) '绝对可以,arr必定是数组,函数返回值必定不会发生错误。
ar = Sheets(1).Range("a1").CurrentRegion '可能出错
' ar = Sheets(1).UsedRange '可能出错
test1 = UBound(ar)
' test1 = 123
End Function
Sub test2()
Dim arr
arr = Sheet1.Range("a1").CurrentRegion
MsgBox UBound(arr)
End Sub
Sub test3()
MsgBox test1()
'当出现在子过程里时,Range("a1").CurrentRegion,或 Sheets(1).UsedRange ,可以是数组。
End Sub
Function test4()
test4 = Range("a1").CurrentRegion '11楼
'至少说明,当出现在本过程里时,系统认为:Range("a1").CurrentRegion 等同于A1单元格。
'也就是说,即使是数组,也只看作一个数值。(也许系统认为这是能确保安全吧)
'那么对于test1中的 Ubound(ar),也就视为 类型不匹配
End Function