Option Explicit Sub FileNames() Dim sFName As String Dim asFNames() As String Dim sFType As String Dim i As Integer sFType = "D:/Tianqi/*.xlsm" sFName = Dir(sFType) 'Dir函数返回sFType中找到的与通配符形式相匹配的第一个文件名 Do Until sFName = "" '当文件名为空时终止Do i = i + 1 ReDim Preserve asFNames(1 To i) '重新初始化数组asFNames并通过Preserve关键字来保留数组中原有的数据 asFNames(i) = sFName sFName = Dir '这里的Dir是获取下一个匹配文件 Loop If i = 0 Then MsgBox "No such file" Else For i = 1 To UBound(asFNames) MsgBox asFNames(i) Next i End If End Sub 代码摘自<<Excel 2007 VBA 参考大全>>