【发布时间】:2015-12-06 23:47:25
【问题描述】:
我的错误处理有问题。我正在为多个营业地点拼接一系列编号的文件。我已经编写了代码以在“文件不存在”的错误上移动到下一个位置循环,因为每个位置都有不同数量的文件。
即使进行了错误处理,我也会收到运行时 1004 错误。怎么会这样?它在第二个位置循环上轰炸,在第一个位置循环上起作用。为了安全起见,我使用了 15 个文件的循环,因为我遇到的最大值是 12。
Sub OpenURL()
Dim LocBackupFile As String
Dim CurrentFile As String
Dim HubFileName As String
Application.DisplayAlerts = False
Filedate = Format(Date, "mm-dd-yyyy")
'Cycle through Hubs
HubArray = Array("GA100%20-%20AHUB", "TX100%20-%20DHUB", "CA200%20-%20HHUB", "IN100%20-%20IHUB", "WA100%20-%20KHUB", _
"AB100%20-%20LHUB", "MO100%20-%20MHUB", "NC100%20-%20NHUB", "OH100%20-%20OHUB", "PA100%20-%20SHUB", _
"IN200%20-%20THUB", "UT100%20-%20UHUB", "ON100%20-%20VHUB", "MN100%20-%20WINO", "NL100%20-%20YHUB")
For Hub = LBound(HubArray) To UBound(HubArray)
HubName = Left(HubArray(Hub), 5)
HubFileName = HubName & " NoLocBackup " & Filedate & ".xlsb"
For CheckAndOpen = 1 To 15
LocBackupFile = "http://fastnet.--------.com/sites/fastreports/Hubs/" & HubArray(Hub) & "/locbackup_ws" & CheckAndOpen & ".xls"
On Error Resume Next
Workbooks.Open FileName:=LocBackupFile
On Error GoTo Done
CurrentFile = "locbackup_ws" & CheckAndOpen & ".xls"
If CheckAndOpen = 1 Then
RowCount = ActiveSheet.UsedRange.Rows.Count
Workbooks.Add.SaveAs FileName:="R:\" & HubFileName, FileFormat:=50
If RowCount >= 65000 Then
DestRowCount = 65001
End If
Workbooks(CurrentFile).Sheets(1).Range("A1:H" & RowCount).Copy Destination:=Workbooks(HubFileName).Sheets(1).Range("A1")
Else
RowCount = ActiveSheet.UsedRange.Rows.Count
If RowCount < 64999 Then
Workbooks(CurrentFile).Sheets(1).Range("A3:H" & RowCount).Copy Destination:=Workbooks(HubFileName).Sheets(1).Range("A" & DestRowCount)
Else
Workbooks(CurrentFile).Sheets(1).Range("A3:H65000").Copy Destination:=Workbooks(HubFileName).Sheets(1).Range("A" & DestRowCount)
DestRowCount = DestRowCount + 64998
End If
End If
Workbooks(CurrentFile).Close SaveChanges:=False
Next CheckAndOpen
Done:
On Error GoTo 0
Workbooks(HubFileName).Save
Workbooks(HubFileName).Close
Next Hub
Application.DisplayAlerts = True
End Sub
【问题讨论】:
-
错误出现在哪一行?当您尝试保存并关闭
HubFileName工作簿时,它是否真的打开了? -
错误处理之间的行:Workbooks.OpenFileName:=LocBackupFile
标签: excel vba error-handling runtime-error