我写了以下代码:
Function find_results_idle()
Public iRaw As Integer
Public iColumn As Integer
iRaw = 1
iColumn = 1
然后我得到了错误消息:
“子或函数中的无效属性”
你知道我做错了什么吗?
我试着用Global
代替Public
,但是遇到了同样的问题。
我试图将函数本身声明为‘`Public’,但这也没有用。
我需要做什么来创建全局变量?
发布于 2010-04-27 22:42:43
您需要在函数外部声明变量:
Public iRaw As Integer
Public iColumn As Integer
Function find_results_idle()
iRaw = 1
iColumn = 1
发布于 2010-04-28 09:43:21
这是一个关于的问题。
如果只希望变量在函数的生命周期内持续,请在函数或sub中使用Dim
(Dimension的缩写)来声明变量:
Function AddSomeNumbers() As Integer
Dim intA As Integer
Dim intB As Integer
intA = 2
intB = 3
AddSomeNumbers = intA + intB
End Function
'intA and intB are no longer available since the function ended
使用Public
关键字在函数外部声明全局变量(如SLaks所指出的)。此变量将在运行应用程序的生命周期内可用。对于Excel,这意味着只要特定的Excel工作簿处于打开状态,变量就可用。
Public intA As Integer
Private intB As Integer
Function AddSomeNumbers() As Integer
intA = 2
intB = 3
AddSomeNumbers = intA + intB
End Function
'intA and intB are still both available. However, because intA is public, '
'it can also be referenced from code in other modules. Because intB is private,'
'it will be hidden from other modules.
您还可以通过使用Private
关键字声明变量,使其只能在特定模块(或类)中访问。
如果您正在构建一个大型应用程序,并且觉得需要使用全局变量,我建议您为全局变量创建一个单独的模块。这应该可以帮助您在一个地方跟踪它们。
发布于 2010-04-27 22:45:21
要使用全局变量,请从VBA Project UI插入新模块,并使用Global
声明变量
Global iRaw As Integer
Global iColumn As Integer
https://stackoverflow.com/questions/2722146
复制相似问题