VBA 如果文件夹中存在 zip 文件,则无法仅限于 .dat 文件
VBA fails to limit to just .dat files if there are zip files present in the folder
我已经为允许选择的文件类型(.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 文件?
我猜测您的 zip 文件中的某处也可能包含字符串 .dat
(例如 file.dat.zip
),因为此片段:
sFile_Name = Dir(MyFolder & "\*.dat*")
' note this bit ^
将为您提供所有包含 .dat
的文件,而不是.dat
中所有结尾的文件。
如果你只想要后者,试试:
sFile_Name = Dir(MyFolder & "\*.dat")
(没有最后的*
)。
我已经为允许选择的文件类型(.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 文件?
我猜测您的 zip 文件中的某处也可能包含字符串 .dat
(例如 file.dat.zip
),因为此片段:
sFile_Name = Dir(MyFolder & "\*.dat*")
' note this bit ^
将为您提供所有包含 .dat
的文件,而不是.dat
中所有结尾的文件。
如果你只想要后者,试试:
sFile_Name = Dir(MyFolder & "\*.dat")
(没有最后的*
)。