I understand your dislike for the answer “run the line with the line number”, but you cannot argue with the facts. This is exactly what they mean.
The VBA / VB6 syntax is intended for backward compatibility with the QuickBasic syntax, and before that with the GW-Basic / MS-Basic syntax, which dates from the end of 1970 and even earlier: the original Dartmouth BASIC language was created in the 60s.
In MS-Basic, as in any other basic implementation of the era, each line added to the program must begin with a line number. The line number told the main interpreter two things: a) that you store the line (otherwise the interpreter would execute it immediately) and b) at what position of the program the line belonged to. Why is something so secret? because when Basic was invented, it had to be interactive, in a world where the only form of interactivity was a command line prompt on a teletype-style print terminal.
And there were no shortcuts.
A typical base session might look like where > means the shell prompt (it is composed, but close enough to how it works). Remember: no cursor keys or screens. You type on a typewriter with a roll of paper instead of a screen - and the typewriter answers you by typing on paper !:
Welcome to BASIC Ok <--- Ok told you the interpreter was ready >LIST <--- print the program Ok <--- No program, so nothing to list. >PRINT 2 + 7 <--- No line number, so execute immediately 9 <--- The command executes Ok >30 PRINT 2 + 7 <--- Line number, so store the command in position 30 Ok >10 I = 42 <--- Line number, so store in line 10 Ok >20 PRINT I + 12 <--- Store on line 20, so insert between 10 and 30 Ok >LIST <--- Print the program so far 10 I = 42 20 PRINT I + 12 30 PRINT 2 + 7 Ok >RUN <--- Execute the stored program now 54 <--- line 10 has no output. Line 20 outputs this 9 <--- line 30 outputs this Ok <--- Done running the program >20 <--- an empty line number: it means delete the line Ok >LIST 10 I = 42 30 PRINT 2 + 7 <--- line 20 is gone!
Primitive? Maybe, but you should start somewhere.
At that time, you always used GOTO, specifying the line number where you want the code to hop. That was the way it worked. For instance:
10 PRINT "Testing, " 20 I = 1 30 PRINT I; "," 40 IF I >= 3 THEN 60 50 GOTO 30 60 END
QuickBasic was an extended version of Basic published by Microsoft that supported the optional compilation of programs into executable files, rather than interactively in the interpreter. Among other improvements, he also added these two features:
Since he worked full-screen with a full-featured graphical GUI editor, he does not need line numbers to indicate where each new line is; you just moved the cursor and typed: traditional line numbers were now optional . In fact, they were discouraged because in the full-featured editor they simply got in the way. But they could not simply remove them because they were so important for compatibility with BASIC, therefore they were still supported. And they are still there, even in VBA.
Since they did not want you to use line numbers, they needed an alternative to teams in which line numbers were targets, such as GOTO . You are now allowed to place text labels that can be used as targets for GOTO, etc.
So you can see that line numbers are not just “line labels made of numbers”. They are actually an alternative syntax that is supported for compatibility with older versions of the language.
What is it. The help file just tells you about the “modern” GOTO syntax (with text labels), and that if you really want to, you can still use the obsolete syntax with line numbers and the obsolete GOTO syntax, which was invented in the mid-1960s.