ph8 said:
I'm sorry about the code issue. I didn't think it would be an problem.
But lesson learned

Thanks for your reply once again.
My comment was intended to be a lesson said:
I hate to keep pushing it. I know you probably want me to just use
your code and be off with it, but I can't help but want to learn more
thoroughly at what the code does.
Nope, if more people understood what their code does, rather than
copy-and-pasting from the NGs without understanding it, the world would be a
better place. Taking this line by line:
If an error occurs, ignore it and just proceed to the next line.
[Try to] set oWB to a reference of the workbook with the name in
filenames(i). If this works then all is well, we have a reference to the
workbook we want. If not, then an error will occur and oWB will not be set
(i.e. will be Nothing). However, because of the line above, the macro will
not halt at this point and carry on to the next line.
This has the opposite effect of "On Error Resume Next", i.e. this will turn
error checking back on. It also has the effect of resetting the Err Object,
so that if an error had occurred up to this point, it is cleared.
So at the end of all this, if the desired workbook in open, you have a
reference to it in oWB. If not, you have a Nothing reference in oWB. You
can do the Is Nothing test to find out what to do next.
How exactly does this check if a workbook is open? From my limited
knowledge of VBA, I can see that this would only check if a workbook is
open on the local computer? Is that right? If so, then I can't help
but realize that it is exactly what I asked for.

I failed to
specify that these workbooks would be open on networked computers.
Yes, this will only check to see if it is open on the current instance of
Excel on the current computer. If the files are open on other computers you
will get errors when you try to save them. Opening them will work, but you
might get a Read Only / Notify message. One way round this is to make them
Shared workbooks, so that they can be open on more than one computer at a
time. A caveat of this is that you can't edit code in a shared workbook:
you have to unshare it, edit the code, then reshare it, which is a pain.
However, you can just put your code in yet another workbook (or addin) and
run it from there.
The project I am working on is a hierarchial set of spreadsheets. Data
from the top tier spreadsheet gets pulled from the spreadsheets below
it, all the way down the chain. The point of this specific
funtion/macro I am trying to construct (with your collective help, of
course) is to force data all the way up to the top.
If the spreadsheet 'chain' had four levels, or tiers. The first tier
would pull data from the second tier. The second tier would pull data
from the third tier. And the third tier would pull data from the
fourth. If data is entered at the fourth tier, it will never show up
at the first tier unless the second and third tier are opened, and
their links updated, then saved. Which is what this macro does, or is
suppose to do.
If you follow my advice about shared workbooks, you should be OK, but watch
out for situations when two or more users edit the same cells at once
(including updates from your code). Best practise when using shared
workbooks is to save often (Autosave?), even if you haven't done any work,
because saving a shared workbook has the effect of loading up other users'
changes too.
HTH,
Stewart