Я использую макрос, в котором перечислены все имена файлов в любом каталоге, который я выбираю. Я пишу код, который разбивает имя файла на куски, которые я могу использовать позже. Список имен файлов начинается в ячейке F6 и проходит по столбцу. Вот код, который я написал до сих пор:Для цикла для удаления строк
Dim ContractNum As String
Dim InvNum As String
Dim FileRng As Range
Dim FileLastRow As Long
Dim File As Range
FileLastRow = Sheet1.Range("F" & Rows.Count).End(xlUp).Row
Set FileRng = Sheet1.Range("F6:F" & FileLastRow).SpecialCells(xlCellTypeConstants, 23)
For Each File In FileRng
If File = "Invoice.zip" Or File = "Thumbs.db" Then
File.EntireRow.Delete
End If
Next File
For Each File In FileRng
ContractNum = Left(File, 4)
InvNum = Mid(File, 8, 6)
File.Offset(0, -5) = ContractNum
File.Offset(0, -4) = InvNum
Next File
Пока у меня эта часть работает нормально. Проблема, с которой я сталкиваюсь, заключается в том, что во всех каталогах плохо использовать этот макрос, есть нежелательные файлы, такие как «Thumbs.db» или «Invoice.zip». Код У меня возникли проблемы с ниже:
For Each File In FileRng
If File = "Invoice.zip" Or File = "Thumbs.db" Then
File.EntireRow.Delete
End If
Next File
Что я хотел это сделать, это отсканировать весь список имен файлов, и если он встречает имя файла «Thumbs.db» или «Счет-фактура .zip ", удалите всю строку. Пока это работает ... любопытно. Например, если в моем списке есть два файла с именем «Thumbs.db» и «Invoice.zip», я должен дважды запустить макрос, чтобы удалить оба. Очевидно, я хотел бы уничтожить их всех одним махом.
Запуск регулярного цикла для обратного хода 'for I = filelastrow до 6 шагов -1' –