使用FSO在列范围内searchExcel文件

在下面的代码中,我试图实现的是代码search在给定的path是“D:\ Checksheets \”中列F范围中input的文件。 我仍然在学习FSO,非常感谢任何帮助。

Sub Test() Dim FSO As Object Dim FSO_Folder As Object Dim FSO_file As Object Dim path As String Dim sheetref As String Dim nextform As String Dim row As Integer Dim col As Integer row = 8 col = 6 sheetref = Sheets("Sheet1").Cells(row, col) 'nextform = sheetref path = "D:\Checksheets\" Do Until Sheets("Sheet1").Cells(row, col) = "END" Set FSO = CreateObject("Scripting.FileSystemObject") Set FSO_Folder = FSO.GetFolder(path) For Each FSO_file In FSO_Folder.Files If FSO_file.Name = sheetref Then MsgBox "done" & path Else End If row = row + 1 Next Loop End Sub 

FSO有一个内置的FileExists方法:

 ... Set FSO = CreateObject("Scripting.FileSystemObject") Dim sht As Worksheet, cell As Range Set sht = Sheets("Sheet1") Do Set cell = sht.Cells(row, col) If cell.Value = "END" Then Exit Do If FSO.FileExists(path & cell.Value) Then MsgBox "done " & cell.Value End If row = row + 1 Loop 

您可以完全删除FSO代码,并用内置的Dir$函数replaceFileExists调用:

 If Len(Dir$(path & cell.Value)) Then 

感谢Alex,我能够使代码工作。 如果有人有类似的问题,下面是代码:

 Sub test() Set FSO = CreateObject("Scripting.FileSystemObject") Dim sht As Worksheet, cell As Range Dim row As Integer Dim col As Integer Dim path As String path = "D:\Checksheets\" row = 1 col = 6 Set sht = Sheets("Sheet1") Do Set cell = sht.Cells(row, col) If cell.Value = "END" Then Exit Do If cell.Value <> "" Then ' checks for any empty cells FSO.FileExists (path) MsgBox "file exists" Else End If row = row + 1 Loop End Sub