【发布时间】:2015-10-23 00:29:37
【问题描述】:
我有以下代码提取,它打开了一个工作簿,但是如果它不存在,我希望它找到并打开最新的文件,但是它不起作用,只是说它无法打开今天日期的文件?
谁能告诉我哪里出错了? :(
Sub test()
Application.DisplayAlerts = False
On Error GoTo ErrHandler:
Workbooks.Open Worksheets("Filenames").Range("A6").Value
Exit Sub
ErrHandler:
Dim dtTestDate As Date
Dim sStartWB As String
Const sPath As String = "I:\Transaction Reports\Supply Outlook Inputs\"
Const dtEarliest = #10/10/2015#
dtTestDate = Date
sStartWB = ActiveWorkbook.Name
While ActiveWorkbook.Name = sStartWB And dtTestDate >= dtEarliest
On Error Resume Next
Workbooks.Open sPath & "qryDAConsumption " & Format(dtTestDate, "DDMMYY") & ".xlsx"
dtTestDate = dtTestDate - 1
On Error GoTo 0
Wend
If ActiveWorkbook.Name = sStartWB Then MsgBox "Earlier file not found."
Dim wb8 As String
wb8 = ActiveWorkbook.Name
Application.DisplayAlerts = True
Resume Next
Sheets("qryDAConsumption").Select
Cells.Copy
ThisWorkbook.Activate
ActiveSheet.Paste
End Sub
【问题讨论】:
标签: excel error-handling while-loop vba