not sure what's happening

  • Thread starter Thread starter Alex H
  • Start date Start date
A

Alex H

IOamworking thru some learningmaterial and have the following code:

Sub Monthupdate()
m = Sheets("command").Cells(3, 1)
If (m = "January") Then
Sheets("Command").Cells(3, 1) = February
GoTo lab1:
End If

At this point the following message is displayed:-

<<...OLE_Obj...>>

It appears not to like the GoTo lab1:

I can't find any reference to lab1: before this point in the module, will
the label need defining? If so how is this done in VB?

If you have any suggestions they would be most appreciated.
 
Alex

lose the ":" at the end of lab1 before the End If.

You need the colon on the end of the actual label that you want to jump to

Sub Monthupdate()
m = Sheets("command").Cells(3, 1)
If (m = "January") Then
Sheets("Command").Cells(3, 1) = February
GoTo lab1
End If
'
'
'
lab1:


Regards

Trevor
 
Labels are usually used in VBA as an escape exit in error conditions, and
usually placed near the end of a subroutine, where tidy-up code is entered.

To input a label, just enter

lab1:

on a line all by itself.

--

HTH

RP
(remove nothere from the email address if mailing direct)
 
Alex,

You define a lable simply by typing in a name followed by a colon.

e.g.

Sub WithLabels()
StartProc: 'this is a label
End Sub

Looking at your code as it stands there is no label, so I have rewritten a
bit to show what the original author might have intended, and added a better
structure below avoiding the Goto. It's useful sometimes, but not a great
programming construct.

Sub Monthupdate()
m = Sheets("command").Cells(3, 1)
If (m = "January") Then
Sheets("Command").Cells(3, 1) = February
GoTo lab1:
End If
msgbox "The cell does not contain January"
lab1:
End Sub

The better version

Sub Monthupdate()
m = Sheets("command").Cells(3, 1)
If (m = "January") Then
Sheets("Command").Cells(3, 1) = February
else
msgbox "The cell does not contain January"
End If
End Sub

HTH,

Robin Hammond
www.enhanceddatasystems.com
 

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

Back
Top