| GoSub...Return Statement |
Syntax
GoSub label ... label: ... Return
label
Use: Required
Subroutine name.
Description
Passes execution to and returns from a subroutine within a procedure.
Rules at a Glance
GoSub and its counterpart, Return, must reside within the same procedure. This means you can't use GoSub to "call" a subroutine from within another procedure.
A subroutine can contain any number of Return statements.
Return causes execution to continue with the code immediately following the last executed GoSub.
Programming Tips and Gotchas
The only reason I've included this relic of the past here is to help if you have the misfortune of maintaining or updating legacy code (and by legacy, I mean VB1 or 2!). A program written in VB3 onward shouldn't contain a single GoSub. If you come across a GoSub, split the code into its own Sub procedures, or, better still, create a new function procedure containing the code within the GoSub. Even if you aren't going to use a return value now, cast the return value of the function as a Boolean; this is good programming practice and allows early error trapping within your code.
Old code
-
Private Sub Command1_Click() Dim iSomething As Integer Dim strOther As String GoSub AnOldGosub GoSub AnOlderGosub GoSub AnotherGosub Exit Sub AnOldGosub: Dim x As Integer For x = 1 To 10 iSomething = iSomething + 1 Next x Return AnOlderGosub: Dim y As Integer For y = 1 To 10 strOther = strOther & "=" Next y Return AnotherGosub: Printer.Print strOther Printer.Print ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access