If Then Else

S

Sandy

What am I doing wrong in this simple statement - it fails in the line
just before **Do Stuff**

Dim myFileName, myName, myWorkbookName As String
myName = Sheets("Data Input").Range("D1").Value
myFileName = "Personal Data-" & myName & ".xls"
myWorkbookName = ActiveWorkbook.Name

If "Personal Data.xls" = ActiveWorkbook.Name Then
GoTo myMark
ElseIf
myWorkbookName <> myFileName Then

***** Do Stuff********

End If

Thanks Sandy
 
A

Art

Sandy,

You need to have:
ElseIf myWorkbookName <> myFileName Then
all on one line.

Also, even though you didn't ask, it's generally not good to use GoTo.
Possibly better in your case would be to have a separate sub that does what
you want in the case of equality.
 
A

Art

GoTo's have a tendancy to result in Spaghetti Code
http://en.wikipedia.org/wiki/Spaghetti_code

It makes it harder to know where the program will be at any given time.
Another problem is that if you pass the GoTo (that is, didn't jump), you may
wind up at that GoTo point anyway -- this may or may not be desireable
depending on what you want.

A more structured approach tends to be easier to debug.

Now in VBA you can't entirely avoid GoTo's. Error handling (as far as I
know) only works by way of a GoTo.
 
Top