Call Sub

B

Bishop

I'm trying to call a sub routine in another spreadsheet but I keep getting a
compile error "sub or function not defined." I have the following code:

....
If Not mybook Is Nothing Then

'Need to do the following:
'if lazy eye hasn't been run in directorcopy then run it
With mybook.Worksheets("DirectorCopy")
If .Cells(1, 1) = "" Then
Call DirectorFormat
DCLastRow = .Range("A" & Rows.Count).End(xlUp).Row
'Determine how many rows in directorcopy
Else
DCLastRow = .Range("A" & Rows.Count).End(xlUp).Row
End If
....

Call DirectorFormat is giving me the error. I've also tried Call
DirectorCopyFormat.DirectorFormat (DirectorCopyFormat is the module
Directorformat sits in) but that gives me the same error. What am I doing
wrong?
 
S

smartin

Bishop said:
I'm trying to call a sub routine in another spreadsheet but I keep getting a
compile error "sub or function not defined." I have the following code:

...
If Not mybook Is Nothing Then

'Need to do the following:
'if lazy eye hasn't been run in directorcopy then run it
With mybook.Worksheets("DirectorCopy")
If .Cells(1, 1) = "" Then
Call DirectorFormat
DCLastRow = .Range("A" & Rows.Count).End(xlUp).Row
'Determine how many rows in directorcopy
Else
DCLastRow = .Range("A" & Rows.Count).End(xlUp).Row
End If
...

Call DirectorFormat is giving me the error. I've also tried Call
DirectorCopyFormat.DirectorFormat (DirectorCopyFormat is the module
Directorformat sits in) but that gives me the same error. What am I doing
wrong?

Is DirectorFormat declared as Private? If so, it cannot be called from
outside the module it resides in.
 
J

JLGWhiz

If you call from a different workbook, then you have to specify the Projectt
name (Workbook in Excel) and the module where the macro resides.
 
B

Bishop

That's a good question. I forgot to check for that. However, it is not
declared as private.
 
D

Dave Peterson

And you don't have:
Option Private Module
at the top of that module, right?????
 
B

Bony Pony

I find that application.run("module") works in all cases or if you want to
pass variables

sdoit = application.run("module",var1,var2 etc)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top