ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   If Then Else (https://www.excelbanter.com/excel-worksheet-functions/143281-if-then-else.html)

Sandy

If Then Else
 
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



Art

If Then Else
 
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.



"Sandy" wrote:

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

If Then Else
 
Thanks for your help but why is it so bad to have a GoTo?

Sandy

"Art" wrote in message
...
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.



"Sandy" wrote:

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






Art

If Then Else
 
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.



"Sandy" wrote:

Thanks for your help but why is it so bad to have a GoTo?

Sandy

"Art" wrote in message
...
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.



"Sandy" wrote:

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








All times are GMT +1. The time now is 08:22 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com