我正在尝试使用Dir
循环访问文件。我写了以下内容,但正如预期的那样,循环是无止境的,因为它打开并关闭文件夹中的第一个文件。
我想知道是否有比wildcard方法更好的方法,但任何人都可以为我提供解决方案。
strFolder = "D:\Name\Project\Data\Back-End\Previous\"
strFileSpec = strFolder & "*.xlsx"
strFileName = Dir(strFileSpec)
Do While Len(strFileName) > 0
Dim strFilePath As String: strFilePath = strFolder & strFileName
Set proxy_wbk = Workbooks.Open(strFilePath)
Set proxySheet = proxy_wbk.Sheets(1)
siteName = proxySheet.Cells(1, 1).Value
'do work'
Workbooks(siteName & "_Jan_2017.xlsx").Close savechanges:=False
Loop
答案 0 :(得分:0)
试用此代码
files = Dir("/yourpath/*.xlsx")
While files <> ""
List(i)=files //List(i) will hold the file name
files = Dir
Wend
这里Dir函数每次调用时都会逐个返回文件名 清除所有文件名后,返回空字符串。
为了更好地理解,假设Dir函数中有静态变量来保存文件名索引。