Run-time error 1004

C

Confused Slug

I am using the following to retreive the name of a file that i wish to open.
If i select 'Cancel' rather than a file name and 'Open', i would receive a
Run-time error 1004. I am handling this potential error using the ErrorClose
routine to allow me to 'Retry'. If i select the option to retry and then
elect not to open a file for a second time i receive the Run-time error 1004
message which is not handled by the ErrorClose.

Why would the error be handled as expected on the first pass but not on the
second?

Thanks



Step1:

RawDataFileInfo = "Excel Files (*.xls),*.xls," & _
"Excel Files (*.xlsx),*.xlxs"
RawDataFilterIndex = 1
RawDataTitle = "Select Raw Data File to Import"
RawDataFileName = Application.GetOpenFilename(RawDataFileInfo,
RawDataFilterIndex, RawDataTitle)
On Error GoTo ErrorClose


"Rest of Code" .............................


Exit Sub

ErrorClose:

If Err.Number = 1004 Then
ErrMsg = "You must select an Outstanding Stock Order to import" &
vbNewLine & vbNewLine
ErrReply = MsgBox(ErrMsg, vbExclamation + vbRetryCancel, "Invalid
Action")
If ErrReply = vbRetry Then
GoTo Step1
Else
Application.ActiveWorkbook.Close
End If
End If

End Sub
 
J

Jacob Skaria

Try the below

Dim rawdatafilename As Variant

Do
RawDataFileInfo = "Excel Files (*.xls),*.xls," & _
"Excel Files (*.xlsx),*.xlxs"
RawDataFilterIndex = 1
RawDataTitle = "Select Raw Data File to Import"
rawdatafilename = Application.GetOpenFilename(RawDataFileInfo, _
RawDataFilterIndex, RawDataTitle)

If rawdatafilename = False Then
If MsgBox("You must select an Outstanding Stock Order to import", _
vbExclamation + vbRetryCancel, "Invalid Action") <> vbRetry Then _
Application.ActiveWorkbook.Close: Exit Sub
End If
Loop While rawdatafilename = False
MsgBox "File selected"
End Sub
 
J

Jacob Skaria

Or use the FileDialog as below...

Dim strFile As String

Do
With Application.FileDialog(msoFileDialogOpen)

..AllowMultiSelect = False
..Filters.Add "Excel Files", "*.xls", 1
..InitialFileName = "C:\"
..Show

If .SelectedItems.Count = 0 Then
If MsgBox("No file selected", vbRetryCancel) <> vbRetry Then Exit Sub
Else
strFile = .SelectedItems(1): Exit Do
End If

End With
Loop

MsgBox "File selected"
 
C

Confused Slug

Thanks Jacob, all sorted



Jacob Skaria said:
Or use the FileDialog as below...

Dim strFile As String

Do
With Application.FileDialog(msoFileDialogOpen)

.AllowMultiSelect = False
.Filters.Add "Excel Files", "*.xls", 1
.InitialFileName = "C:\"
.Show

If .SelectedItems.Count = 0 Then
If MsgBox("No file selected", vbRetryCancel) <> vbRetry Then Exit Sub
Else
strFile = .SelectedItems(1): Exit Do
End If

End With
Loop

MsgBox "File selected"
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top