Thread: on error
View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default on error

Some more thoughts...

First, I'd stay away from using Error as a label in your error handling code.
There's the "on Error" statement and an error object that could cause confusion
for you--even if excel's vba can figure it out.

Second, you do a lot of selecting and copying and selecting and pasting.

You can do lots without selecting stuff.

I'm not sure if "US Bank Statement Interest multiple months.xls" is the workbook
with the code or not. And I'm not sure what sheet should get the info--you
relied on that activesheet in that workbook.

But this may give you another approach:

Option Explicit
Sub testme()

Dim myCell As Range
Dim x As String
Dim wkb As Workbook
Dim TestStr As String
Dim myFileName As String
Dim myRng As Range

For Each myCell In ThisWorkbook.Worksheets("sheet1").Range("block1"). Cells
myFileName = myCell.Offset(0, 1).Value & "\" & myCell.Value
TestStr = ""
On Error Resume Next
TestStr = Dir(myFileName)
On Error GoTo 0

If TestStr = "" Then
myCell.Offset(0, 2).Value = "File Not Found"
Else
myCell.Offset(0, 2).Value = "Processed"

Set wkb = Workbooks.Open(Filename:=myFileName)
Set myRng = wkb.Names("interestinput").RefersToRange

myRng.Copy _
Destination:= _
ThisWorkbook.Worksheets("whateversheet").Range("a1 ")
End If
Next myCell

Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

(I included a \ in the concatenation string--not sure if that's part of your
data, though.)

Linus wrote:

I'm using the following code to open up serveral files and grab information
to post to a worksheet. If the file does not exist in the directory, my on
error code will work for the first file but shows me the error on any
subsequent issue.

thanks

On Error GoTo error

Range("b2").Select
For Each rw In Range("block1")
ChDir rw.Offset(0, 1)
x = rw
If rw = 0 Then GoTo endmacro
Set wkb = Workbooks.Open(rw, Notify:=False)
Application.Goto Reference:="interestinput"
Selection.Copy
Windows("US Bank Statement Interest multiple months.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Windows(x).Activate
Range("b6").Copy
Windows("US Bank Statement Interest multiple months.xls").Activate
Range("e2").End(xlDown).Offset(0, 2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Selection.End(xlUp).Select
Selection.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range(Selection, Selection.End(xlDown)).Select
Selection.FillDown
Range("b2").End(xlDown).Offset(1, 0).Select
Application.CutCopyMode = False
wkb.Close savechanges:=False

error:
Next rw
endmacro:
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Range("a2").Select
End Sub


--

Dave Peterson