如果文件夹中存在zip文件,则VBA无法限制为仅仅.dat文件

时间:2015-06-09 03:49:17

标签: vba filter directory zipfile

我在允许选择的文件类型(.dat文件)中添加了一个过滤器但是我发现如果文件夹中存在zip文件,则脚本无法正常工作,因为它还会打开zip文件。< / p>

'Specify folder where measurement files are stored
With Application.FileDialog(msoFileDialogFolderPicker)
    If .Show = True Then
    MyFolder = .SelectedItems(1)
    Else
        Exit Sub
    End If
End With

Sheet8.Columns.ClearContents

sFile_Name = Dir(MyFolder & "\*.dat*")
Do While sFile_Name <> ""
    Set wsData_Sheet = Sheet5
    j = wsData_Sheet.Cells(1, Columns.Count).End(xlToLeft).Column
    jn = j + 1
    lcl = Sheet8.Cells(2, Columns.Count).End(xlToLeft).Column
    lclp = lcl + 1

    Call PARSE_MDF(MyFolder & "\" & sFile_Name, jn, sEND, lclp)
    sFile_Name = Dir()
Loop

如何排除zip文件并将其限制为仅限.dat文件?

1 个答案:

答案 0 :(得分:1)

猜测你的zip文件也可能在其中的某个地方包含字符串.dat(例如file.dat.zip),因为这个片段:

sFile_Name = Dir(MyFolder & "\*.dat*")
'                    note this bit ^

将为您提供包含 .dat的所有文件,而不是.dat中所有结尾的文件。

如果您只想要后者,请尝试:

sFile_Name = Dir(MyFolder & "\*.dat")

(没有最终*)。