【发布时间】:2016-04-25 16:16:05
【问题描述】:
我正在使用一个宏,它列出了我选择的任何目录中的所有文件名。我正在编写代码,将文件名分解成以后可以使用的块。文件名列表从单元格 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”或“Invoice.zip”的文件名,删除整行。到目前为止,这工作......有点。例如,如果我的列表中有两个名为“Thumbs.db”和“Invoice.zip”的文件,我必须运行宏两次才能删除这两个文件。显然,我想一口气将它们全部消灭。
【问题讨论】:
-
向后运行常规 for 循环
for I = filelastrow to 6 step -1