Simon has attended:
Excel VBA Intro Intermediate course
Excel VBA Advanced course
Excel VBA: Call and Run
Guys,
What is the difference between a CALL statement and a RUN method?
I have been happily calling sub-procedures since my course (okay, I've done it once or twice), however I recently tried to do this in an inherited spreadsheet and I got an error message (which I can't remember). I noticed that a couple of other sub-procedures that were there already were 'run'.
With a bit of experementation I have established that both versions of the syntax below produce the same result (as far as I can see):
[...] Call SelectOpeningIndicator
Call ToggleToolbars
Call showbars
[...]
OR
[...] Run "SelectOpeningIndicator"
Run "ToggleToolbars"
Run "showbars"
[...]
so what's the difference?
Cheers,
S!
RE: Excel VBA: Call and Run
Hi Simon. Call and Run may seem to be interchangeable, but Calling a procedure from within the code is "tidier" (in the memory usage sense) than Running it, and I suspect this has caused the errors you encountered. The "call" command invokes a named procedure (and you would normally "call" a procedure from another procedure in a program, rather than "run" it) whereas Run invokes a procedure (and probably resets all your variable declarations) which happens to be named. "Run" is a command which you'll recognise even from the version of BASIC on a ZX Spectrum, and earlier - "Execute" is used on different platforms for similar purposes - whereas "Call" is the programmatic, procedural equivalent and using the two commands interchangeably has processing, variable declaration, ramifications. In a nutshell, the difference is one of arcane programming requirements and when coding I'd "Call" my procedures!
Hope this helps,
Anthony
RE: Excel VBA: Call and Run
Anthony,
Thanks, this is useful to know. (I wrote my first code on a ZX81, although I have been out of a coding environment since the end of the 1980s).
I suspect that the 'Run' commands that I have inherited are some kind of legacy programming and I am replacing 'Runs' with 'Calls' as I come across them. This has gone okay... so far!
Cheers,
S!