Я относительно любитель в VBA и использую код, предоставленный tech в сети.VBA проверить, существует ли файл в подпапках
У меня есть документ Excel с именами файлов в столбце B (не всегда один тип файла), который я пытаюсь обеспечить, чтобы у меня были копии и правильная ревизия в указанной папке.
В настоящее время код отлично работает для определенного местоположения папки, но файлы, указанные в электронной таблице Excel, существуют в разных других папках, и поэтому мне нужно создать код, который может искать основную папку и прокручивать различные подкаталоги, папки.
См. Текущий код ниже для справки.
Sub CheckIfFileExists()
Dim LRow As Integer
Dim LPath As String
Dim LExtension As String
Dim LContinue As Boolean
'Initialize variables
LContinue = True
LRow = 8
LPath = "K:\location\main folder\sub folder \sub folder"
LExtension = ".pdf"
'Loop through all column B values until a blank cell is found
While LContinue
'Found a blank cell, do not continue
If Len(Range("B" & CStr(LRow)).Value) = 0 Then
LContinue = True
'Check if file exists for document title
Else
'Place "No" in column E if the file does NOT exist
If Len(Dir(LPath & Range("B" & CStr(LRow)).Value & LExtension)) = 0 Then
Range("E" & CStr(LRow)).Value = "No"
'Place "Yes" in column E if the file does exist
Else
Range("E" & CStr(LRow)).Value = "Yes"
End If
End If
LRow = LRow + 1
Wend
End Sub
Есть более 1000 документов, поэтому простые окна поиски не является идеальным, и я рассмотрел несколько предыдущих вопросов, и не могу найти ответ, который помогает.
См [это] (http://stackoverflow.com/documentation/vba/990/scripting-filesystemobject/10411/recursively-enumerate -folders-and-files # t = 201701110450381295929) и [this] (https://msdn.microsoft.com/en-us/library/5xc78d8d (v = vs.84) .aspx). – Comintern
Вы никогда не устанавливали 'LContinue'' False'? –
см. Ссылку. Добавлено через некоторое время назад. Ищите мой ответ, я отправил на вопрос –
user1