Re: Split out a too large sub into several?
The advice of Julius Caesar is appropriate: Divide and Conquer!
Look to making a separate library of actions for Word calls, where the objects are passed in as objects by reference. Pardon the mixed programming metaphor here, but ... put most of your variables in the "main sub" and then do things with them in the "sub subs."
For instance, I had a subroutine that looked at my Word App object to see if it was Nothing; if it was, I instantiated a Word App based on that object. Another sub would open a named document given the name and the App Object. Another sub would CLOSE the document in the App object without closing the object itself. Another would close the object and reset it to Nothing. It sounds like your subs could be coded to do the .AddTable and .AddRow using appropriate Word objects.
Now, what this does is that every time you take a basic operation and code that in a separate "Word Support" module, you end up replacing maybe 10 or so lines in the "main sub" with 1 line. Not only that... you now have a Word App Object toolbox for your next project. This concept - making a tool out of a task - is the basis of the fine art of "tool-smithing" and contributes to current ease of debugging and future ease of building new projects. The latter is true because once the tool is working, you would debug it a LOT less often the next time you use it.
Now as to your explicit question "How do I get it to recognize that without creating a new document in each sub?" The answer is that by passing in the object to a sub by reference, you do the work from the sub-sub but you do it on a variable in the main-sub.
I'm a certified grandpa (3 times now) and proud of it.
Retired over one year and survived being home all day with the wife. She must really love me.
If I have helped you, please either click the thanks or click the scales.