【问题标题】:VBA fails to limit to just .dat files if there are zip files present in the folder如果文件夹中存在 zip 文件,VBA 将无法仅限于 .dat 文件
【发布时间】:2015-06-09 03:49:17
【问题描述】:

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

'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 文件?

【问题讨论】:

    标签: vba filter directory zipfile


    【解决方案1】:

    猜测您的 zip 文件中可能还包含字符串 .dat(例如 file.dat.zip),因为这个 sn-p:

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

    会给你所有包含.dat的文件,而不是所有那些结尾.dat的文件。

    如果你只想要后者,试试:

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

    (没有最后的*)。

    【讨论】:

      猜你喜欢
      • 2019-05-04
      • 1970-01-01
      • 1970-01-01
      • 2022-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 1970-01-01
      相关资源
      最近更新 更多