If Then Else

  • Thread starter Thread starter Sandy
  • Start date Start date
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
 
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.
 
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.
 

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

Similar Threads


Back
Top