![]() |
#1
|
||||
|
||||
![]()
I am working on a complicated Sub. The main For loop is now over two screens long. It's difficult tell how the nested If statements and their Else and End If statements line up. And some of the code is replicated.
So I'd like to move chunks of the code to a sub-Sub. One of these Subs will have to deal with 7-8 variables and modify some of them. I know I can pass these variables to the Sub using the ByRef option, which will allow the Sub to modify them. This is probably the recommended way, but it leads to a fairly long Call statement and I have to make sure that I get them in the right order in both the Call and the Sub statement. I'd like to play with making them some kind of "public" or "global" variables. I tried changing Dim to Public, but this got an error. I then moved the Dim statements outside the main Sub. That worked, but then all of my variable declarations are not together. Is there a better way? Is there a good web page with a clear explanation of variable declaration? I've read several pages from Microsoft, but found them all muddled or incomplete. Thanks |
#2
|
||||
|
||||
![]()
Any variables you declare at the top of your code module (i.e. before any subs) will be available to all subs in that code module. See, for example: https://www.msofficeforums.com/148491-post2.html
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
||||
|
||||
![]() Quote:
After playing with that a bit, I decided to pass the variables I want the Sub to change with ByRef and the rest with ByVal. It's working now and I think it's more readable code. All of my declarations are together in the main Sub and it's clear what the sub Sub is working with. Thanks. |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Array to iterate through variables and trap blank variables | Marrick13 | Word VBA | 5 | 08-04-2015 06:19 AM |
can word: make variables, find appropriate pages, fill out pages with variables, print only those | 20GT | Word VBA | 1 | 10-15-2014 09:48 PM |
![]() |
omahadivision | Excel Programming | 18 | 12-05-2013 08:14 PM |
excel where is procedure being called from | davids67 | Excel Programming | 1 | 11-18-2011 06:48 AM |
![]() |
Franky | Word | 3 | 11-12-2011 08:16 AM |