我正在使用Matlab和Excel开发程序。 Excel将其数据与文本文件一起提供给Matlab,然后,一旦Matlab完成分析,它将创建一个文本文件以供Excel读取。
在我对程序的愿景中,我只想让一个子执行所有操作。因此,我想让子程序处于等待状态,以等待Matlab,直到文件准备好为止。我遇到了问题,因为在Matlab完成之前没有文件,尝试打开文件将导致错误。
我试图使用错误处理程序进行循环,但似乎VBA不允许这样做。
这是我的测试代码:
Sub Test()
Fichier = "'filepath'\file.txt"
IndexFichier = FreeFile()
1:
On Error GoTo expected
Open Fichier For Input As #IndexFichier
Close #IndexFichier
Exit Sub
expected:
Err.Clear
Close #IndexFichier 'Don't know if useful'
GoTo 1
End Sub
我希望代码在“ 1”和“ expected”之间循环,但是在一个循环后,vba会因预期的错误“找不到文件”而自行中断。有人知道是否有可能循环出现错误,还是我必须另做一个小组?
答案 0 :(得分:1)
您无需等待错误,这就是您想要的:
Ruta = wb.Path & "\"
Exportar = Ruta & "datos" & Servicio & ".txt"
FindIt = Dir(Exportar)
While Len(FindIt) = 0
FindIt = Dir(Exportar)
Wend
答案 1 :(得分:0)
您可以检查代码以查看您的路径是否存在。如果没有,请等待。
Do While Dir(Fichier) = ""
Application.Wait(Now() + TimeValue("00:00:10"))
Loop