【发布时间】:2019-05-30 03:35:40
【问题描述】:
我试图更好地理解Dir 函数。我有一个Dir 循环来对目录中的所有.csv 文件执行操作,但是当循环遇到另一种文件类型(如.txt)时,它会出错而不是转到下一个.csv。物品。
这是我的代码的相关部分。
strSourceExcelLocation = "\\rilinfs001\Interdepartmental\Billings & Deductions\Billing Coordinators\MCB Reports\East\Monthly Quality MCBs (CMQ & SECMQ)\2019\Individual_Reports\" & fldr & "\"
strWorkbook = Dir(strSourceExcelLocation & "*.csv*")
Do While Len(strWorkbook) > 0
'Open the workbook
Set wbktoExport = Workbooks.Open(Filename:=strSourceExcelLocation & strWorkbook)
'Export all sheets as single PDF
Call Export_Excel_as_PDF(wbktoExport)
'Get next workbook
strWorkbook = Dir
'Close Excel workbook without making changes
wbktoExport.Close False
Loop
因此,如果目录中只有 .csv 文件,那么这可以正常工作。当它遇到另一种文件类型时,就会发生错误。
错误在线
strWorkbook = Dir
运行时错误 5:无效的过程调用或参数
我在开头使用.csv 中的通配符的方式是否遗漏了什么?
谢谢
【问题讨论】:
-
你得到什么错误信息或号码?
-
您应该重新应用相同的过滤器以仅获取 csv 文件,或者添加
If语句以跳过找到的任何非 csv 文件。 -
导致错误的文件的名称是什么?我从未见过
Dir忽略过滤器。 -
@TimWilliams 一个有效的示例文件名是“SECMQ0419045345D.CSV”。一个不起作用的例子是“SECMQ0419045345D.TXT”。每个 CSV 文件都会有一个对应的 TXT 文件。
-
@Mistella 我收到运行时错误 5。
strWorkbook = Dir行上的过程调用或参数无效。