矩阵-for和-each语句vba

饰演RAENG

以前我得到过帮助,并在这里用vba在特定文件夹中显示了特定文件类型的数组我想将其开发成矩阵,因为我也有几个包含这些子文件夹的文件夹

这是我想像的矩阵,我所看到的唯一例子是建议在excel中使用一个表,该vba可以使用-next命令对其(x,y)坐标进行遍历。我想知道是否有一种方法可以通过vba中的语法而不引用excel中的表吗?

upperFolders = Array("foldernames1", "foldernames2", "foldernames3",
folderNames1 = Array("Folder1", "Folder2", "Folder3")
folderNames2 = Array("Folder4", "Folder5", "Folder6")
folderNames3 = Array("Folder7", "Folder8", "Folder9")
mainFolder = "C:\xxxxxx\"

上一篇文章中给我的完整代码以及矩阵

Dim Myfile As String, MyFolder As String, NewFile As String, SubFolder As String

Sub SpecificFileTypeInSpecificFolders()
'
Dim myFile As String
Dim subFolder As Variant 
Dim folderNames As Variant
Dim mainFolder As String

想要将下面的内容替换为矩阵

folderNames = Array("Folder1", "Folder2", "Folder3")

'给出的其余代码

mainFolder = "C:\xxxxxx\"

For Each subFolder In folderNames
    MsgBox subFolder
    myFile = Dir(mainFolder & subFolder & "\*.csv")
    Do While myFile <> ""
        MsgBox myFile
        myFile = Dir
    Loop
Next subFolder

End Sub
约翰·科尔曼

您是说这种事吗?:

Function MakeMatrix(ParamArray Arrays() As Variant) As Variant
    'assumes that function is passed a collection of 0-based arrays
    'all with the same upper bound
    'returns a 0-based 2-dimensional variant array with the same values
    Dim Matrix As Variant
    Dim m As Long, n As Long, i As Long, j As Long
    m = UBound(Arrays)
    n = UBound(Arrays(0))
    ReDim Matrix(0 To m, 0 To n)
    For i = 0 To m
        For j = 0 To n
            Matrix(i, j) = Arrays(i)(j)
        Next j
    Next i
    MakeMatrix = Matrix
End Function

Sub test()
    Dim folderNames1, folderNames2, folderNames3 'all variant
    Dim myMatrix As Variant
    folderNames1 = Array("Folder1", "Folder2", "Folder3")
    folderNames2 = Array("Folder4", "Folder5", "Folder6")
    folderNames3 = Array("Folder7", "Folder8", "Folder9")
    myMatrix = MakeMatrix(folderNames1, folderNames2, folderNames3)
    Debug.Print myMatrix(1, 1)
    Debug.Print myMatrix(2, 2)
End Sub

输出:

Folder5
Folder9

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章