数组一维。为什么拆分工作而不是Array()

时间:2014-08-20 15:31:06

标签: vba excel-vba excel

得到一个简单的问题。 VBA中的Array()函数确实返回一个二维数组?我正在尝试使用此函数创建一维数组并在filter()函数中使用它,但它表示“类型不匹配”。如果是这种情况,我如何强制Array()创建一维数组?

Sub tester()
    Dim xWorkb As Excel.Workbook
    Dim xFiles_target() As String
    Dim file_path As String

    xFiles_target = Array("Bella.xls", "Fizz.xls", "Milo.xls")

    file_path = Dir("C:\Users\hans\Desktop\")

    Do While Len(file_path) > 0
        Debug.Print file_path
        If UBound(Filter(xFiles_target, file_path)) >= 0 Then
            Debug.Print "found " & file_path
        End If
        file_path = Dir
    Loop
End Sub

1 个答案:

答案 0 :(得分:2)

Array函数确实会创建一维数组。但是,该函数需要您指定的变量,为Variant类型。它不能是字符串/数字。

Dim tmpArr() As String
tmpArr = Array("Hello", "World")

以上可能会引发类型不匹配错误。然而,

Dim tmpArr()
tmpArr = Array("Hello", "World")

上述内容将如此。这不会引发错误但是tmpArray现在有两个元素。

Split函数将生成 String 数组。虽然Variant类型可以接受String,但Number数组不能接受Split函数。

有关这个整齐有序的更多信息:http://patorjk.com/programming/tutorials/vbarrays.htm

希望这会有所帮助。