【发布时间】:2020-09-06 09:07:44
【问题描述】:
我创建了一个宏来读取 csv 文件。但是,当其中一个 csv 文件不存在时,即使其他 csv 文件可用,宏也会停止读取其余的 csv 文件。那么我应该怎么做才能纠正它,以便即使其中一个甚至一些不存在,它也可以继续读取其他 csv 文件?
Private Sub get_file_namevcap() 'check csv file using readdata sub
Dim filename As String
Dim location As String
location = Me.ComboBox2 'csv folder name
Dim ib As Integer
ib = 2
Do While ActiveWorkbook.Sheets("Index_AREA").Cells(ib, 41) <> ""
filename = location & "\" & ActiveWorkbook.Sheets("Index_AREA").Cells(ib, 41) 'getting csv file name in the csv folder
Call readdatavcap3(filename, ib) 'another private sub to read data
ib = ib + 1
Loop
End Sub
【问题讨论】:
-
在开始循环之前确定要检查的最后一行,并继续直到到达它,而不是在第一个空单元格处停止。 stackoverflow.com/questions/38882321/…
-
像
Do While ib <> ActiveWorkbook.Sheets("Index_AREA").Range("AO" & Rows.Count).End(XlUp).Row +1一样改变你的循环 -
@NareshBhople 在这种情况下,我是否将 do while ib Range 替换为 ib = 2 而其余部分相同?
-
不,那将是无效的。它会抛出一个错误...让 ib = 2 然后如上所述更改循环。另外,添加了一个答案,请检查它是否有效。
-
@Naresh Bhople 但我仍然需要 Do While ActiveWorkbook.Sheets("Index_AREA").Cells(ib, 41) "" 来检查空的 csv 链接,所以我想我不能替换那个?