得到一个简单的问题。 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
答案 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
希望这会有所帮助。