Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
J@Y J@Y is offline
external usenet poster
 
Posts: 127
Default Calling Public Variables between diff Modules

I declared a public variable "Lib" in Module1. I have a For loop in Module 1
using "Lib" :

For Lib = 1to 10

....(code) ...

Next

In the (code) section, I call Module2. When Module2 calls the Lib variable,
gives me the ambiguous variable error. Is this because the For statement
actually declares Lib as a procedural variable instead of using it as a
public variable?
  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7,247
Default Calling Public Variables between diff Modules

As long as Lib is declared only in one module as a Public variable, you
should be able use it from any other procedure in any module. Make sure you
are not declaring it anywhere else. Also, "Lib" is a reserved word in VB
(used with the Declare statement). I would rename the variable to avoid
confusion.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting
www.cpearson.com
(email on the web site)


"J@Y" wrote in message
...
I declared a public variable "Lib" in Module1. I have a For loop in Module
1
using "Lib" :

For Lib = 1to 10

...(code) ...

Next

In the (code) section, I call Module2. When Module2 calls the Lib
variable,
gives me the ambiguous variable error. Is this because the For statement
actually declares Lib as a procedural variable instead of using it as a
public variable?


  #4   Report Post  
Posted to microsoft.public.excel.programming
JMB JMB is offline
external usenet poster
 
Posts: 2,062
Default Calling Public Variables between diff Modules

It sounds like a name conflict (perhaps Lib is declared more than once?).

Also- as Don suggests, I would not use a public variable as a control for a
For loop. Reason is if the second Sub modifies the variable it messes up
your For loop. Even if you try using parameter passing:


Public Lib As Long

Sub test()
For Lib = 1 To 10
Call Test2(Lib)
Next Lib
End Sub

Sub Test2(x As Long)
x = x + 1
Debug.Print Lib
End Sub


VBA, by default, passes parameters By Reference (ByRef). In the above
example, x is another name for Lib - so any change to x changes Lib. You can
pass By Value (ByVal) to avoid this, but I would avoid using referencing my
control variable in any other sub.


"J@Y" wrote:

I declared a public variable "Lib" in Module1. I have a For loop in Module 1
using "Lib" :

For Lib = 1to 10

...(code) ...

Next

In the (code) section, I call Module2. When Module2 calls the Lib variable,
gives me the ambiguous variable error. Is this because the For statement
actually declares Lib as a procedural variable instead of using it as a
public variable?

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Accessing Public variable in different modules Denis[_4_] Excel Programming 6 May 18th 07 12:14 PM
Public, Private, Event modules, Forms modules,,, Jim May Excel Programming 11 October 31st 05 03:12 AM
Calling Add-In subroutines from other modules sclark Excel Programming 6 February 3rd 04 05:45 PM
calling modules Pedro Excel Programming 1 November 13th 03 11:15 AM
variable calling in different modules. russell Excel Programming 2 October 24th 03 04:17 AM


All times are GMT +1. The time now is 06:00 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"