VBA中是否存在(“foo”,“bar”,“baz”)构造?

时间:2016-04-06 08:41:25

标签: vba for-loop iteration

我必须迭代一个常量的字符串列表。据我所知,没有

for item in ("foo", "bar", "baz")
   doSth(item)
next item

我想知道如何优雅地编程这样的结构。

2 个答案:

答案 0 :(得分:1)

优雅?你决定了。

尝试:

Sub test()
    Dim x As Variant

    For Each x In Array("foo", "bar", "bas")
        Debug.Print x
    Next

End Sub

答案 1 :(得分:0)

你的问题有点泛,但是,你可以使用For Each来做到这一点。我会粘贴一些自己的代码,然后你会看到它是如何工作的:

Sub Example()
    Dim tempFolderStr As String
    Dim tempFullStr As String
    Dim objFolder As Object
    Dim objFile As Object
    Dim fs As Object

(...)

    Set objFolder = fs.GetFolder(tempFolderStr)

    For Each objFile In objFolder.Files
        tempFullStr = tempFolderStr & objFile.name
        Call Delete_File(tempFullStr)
    Next objFile

End Sub

这将迭代它在tempFolderStr文件夹中找到的每个文件。

我将链接留给适当的MSDN文章:https://msdn.microsoft.com/en-us/library/5ebk1751.aspx