繁体   English   中英

Excel VBA数组功能

[英]Excel VBA Array Function

我试图更全面地了解数组。 有人可以向我解释为什么它不能编译:

Public Sub Test()
    Dim Names As String
    Names = Array("Brian", "Steve", "Andrea")
    Debug.Print Names(2) 'Compile error: Expected array
End Sub

以及为什么编译但不运行:

Public Sub Test()
    Dim Names() As String
    Names = Array("Brian", "Steve", "Andrea") 'Run-time error '13': Type mismatch
    Debug.Print Names(2)
End Sub

但这有效,即使我没有添加() (除非将其声明为Variant类型也可以使其成为数组?):

Public Sub Test()
    Dim Names As Variant
    Names = Array("Brian", "Steve", "Andrea")
    Debug.Print Names(2)
End Sub

正如预期的那样:

Public Sub Test()
    Dim Names() As Variant
    Names = Array("Brian", "Steve", "Andrea")
    Debug.Print Names(2)
End Sub

好吧, Array函数返回包含数组的Variant数据类型。 检查MSDN文档

注意未声明为数组的Variant仍可以包含数组。 Variant变量可以包含任何类型的数组,固定长度的字符串和用户定义的类型除外。 虽然包含数组的Variant在概念上与元素类型为Variant的数组在概念上有所不同,但是以相同的方式访问数组元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM