以前在bas,cls模块级编的程序funcion ,由于程序修改,很多function需要增加同一变量。
改动每个function 太麻烦。想偷懒,好像不可以。如
如在同一模块中
Public s1 As Double'全局变量声明
Dim ss1
Sub mm()
Dim s2
Debug.Print
s1 = 2
ss1 = "ss1"
mm1
End Sub
Function mm1()
Debug.Print s1, ss1 '输出结果为 2 , ss1
Debug.Print s1 * 6 '输出结果为 12
End Function放在另一模块 bas 或cls
Function mm1()
Debug.Print s1, ss1 '输出结果无结果
Debug.Print s1 * 6 '输出结果无结果
End Function
请问各位大侠的问题是跨模块,是不是全局变量不起作用,谢谢.
改动每个function 太麻烦。想偷懒,好像不可以。如
如在同一模块中
Public s1 As Double'全局变量声明
Dim ss1
Sub mm()
Dim s2
Debug.Print
s1 = 2
ss1 = "ss1"
mm1
End Sub
Function mm1()
Debug.Print s1, ss1 '输出结果为 2 , ss1
Debug.Print s1 * 6 '输出结果为 12
End Function放在另一模块 bas 或cls
Function mm1()
Debug.Print s1, ss1 '输出结果无结果
Debug.Print s1 * 6 '输出结果无结果
End Function
请问各位大侠的问题是跨模块,是不是全局变量不起作用,谢谢.
public ss1 Sub mm()
Dim s2
Debug.Print
s1 = 2
ss1 = "ss1"
mm1
End Sub
'放在另一模块 bas 或cls
public Function mm1()
Debug.Print s1, ss1 '输出结果无结果
Debug.Print s1 * 6 '输出结果无结果
End Function
public ss1 Sub mm()
Dim s2
Debug.Print
s1 = 2
ss1 = "ss1"
mm1
End Sub
'放在另一模块 bas 或cls
public Function mm1()
Debug.Print s1, ss1 '输出结果无结果
Debug.Print s1 * 6 '输出结果无结果
End Function
在excel中模块和cls可以用
但在sheet1的VBA调试程序中不可以用.
Public s1 As Double'全局变量声明
public ss1 public Function mm1()
Debug.Print s1, ss1 '输出结果无结果
Debug.Print s1 * 6 '输出结果无结果
End Function sheet1中
Sub mm()
Dim s2
Debug.Print
s1 = 2
ss1 = "ss1"
mm1
End Sub
(1)声明为Public
(2)放在标准模块里