我需要获取一个文件夹中所有Excel文件的名称,然后对每个文件进行更改。我已经整理了“进行更改”部分。有没有一种方法可以获取一个.xlsx
文件夹中文件的列表,例如说D:\Personal
并将其存储在字符串数组中。
然后,我需要遍历文件列表并在我认为可以使用的每个文件上运行一个宏:
Filepath = "D:\Personal\"
For Each i in FileArray
Workbooks.Open(Filepath+i)
Next
我一看这个,但是,我没能打开这些文件的原因,而是存储在名称Variant
格式。
简而言之,如何使用VBA获取特定文件夹中的Excel文件名列表?
好的,这可能对您有用,该函数采用路径并在文件夹中返回文件名数组。您可以使用if语句在遍历数组时仅获取excel文件。
Function listfiles(ByVal sPath As String)
Dim vaArray As Variant
Dim i As Integer
Dim oFile As Object
Dim oFSO As Object
Dim oFolder As Object
Dim oFiles As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(sPath)
Set oFiles = oFolder.Files
If oFiles.Count = 0 Then Exit Function
ReDim vaArray(1 To oFiles.Count)
i = 1
For Each oFile In oFiles
vaArray(i) = oFile.Name
i = i + 1
Next
listfiles = vaArray
End Function
如果我们可以按索引号访问files对象中的文件,那会很好,但是由于某种原因,它似乎在VBA中已损坏(错误?)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句