EXCEL VBA 保存变量

有没有不往表格里面写入的方法,只利用VBA保存一个变量,好让我每次运行宏的时候都可以调用上次该变量最后计算的值?
比如
Sub T1()
A=A+1
End Sub
每次运行都会让A增加1

第1个回答  2013-03-16
没有。必须有个地方保存它,然后下次读取才可以。追问

那这样可以吗?让一个主SUB,一直处于后台运行状态,然后我还能再触发其他事件吗?譬如WORKBOOK_CHANGE(),这样变量内存就不会被清空了啊

追答

哦 不好意思,刚刚没看清,
如果你只是要工作簿打开期间保存变量的话,可以在所有过程前面,也就是所有代码前面定义这个变量。这样定义的变量只能在对应的窗口中使用。
另外如果变量只是在某个过程中使用的话,可以用 static I as long 这样来定义,没有关闭工作簿就可以保留变量值。

如果你需要在所有窗口中使用的话,就要建立模块来定义了。定义方法一样是在最前面所有过程外面定义。

本回答被提问者和网友采纳
第2个回答  2019-07-06
将代码修改为:
function
x(a
as
string)
as
integer
if
a
=
"www"
then
x
=
12
else
x
=
31
end
if
end
function
回到excel,在a1输入
www
,在b1输入
=x(a1)
改变a1的值,b1中的自定义函数起作用。
第3个回答  2013-03-16
你好,可以新建一个模块在里边保存,定义为Public Static变量就行。
第4个回答  2013-03-16
每次运行结束之前将数据保存到某个单元格中,下次调用它不就行了么。
第5个回答  2013-03-16
可以考虑保存到注册表中,使用函数可以读写注册表。