【发布时间】:2016-05-29 06:07:03
【问题描述】:
我有一个问题,我想在用户窗体关闭时将用户窗体的内容存储在一个数组中。我以为我的语法是正确的,但它似乎没有在用户窗体初始化时重新填充。我尝试将数组放在它自己的模块中,但这也不起作用。有没有大神赐教?
示例代码:
Public Sub DPArrayStuff()
Dim DP(2)
DP(0) = Block1
DP(1) = Block2
DP(2) = Block3
End Sub
Private Sub userform_terminate()
If Block1.Value <> vbNullString Then Call DPArrayStuff
End Sub
Private Sub userform_Initialize()
If DP(0) <> vbNUllString Then
Block1 = DP(0)
Block2 = DP(1)
Block3 = DP(2)
End If
End Sub
【问题讨论】:
-
有没有办法保存在内存中?我希望避免输入到工作表然后输出到用户表单。
-
我认为要记住的一件重要事情是,当没有运行 VBA 代码时,您存储在内存中的所有信息都消失了。因此,如果您在表单关闭后没有运行任何代码,则您的设置已丢失。例如,您可以选择将该信息存储在临时文件夹中的文本文件中。但是,检索设置变得更加困难。
-
@Tom 您能否删除您的评论,或进行编辑以反映这样一个事实,即当代码停止后 Dim'd 变量丢失时,只要工作簿打开,Public'd 变量就会保持[并且模块代码未经编辑]?有关详细信息,请参阅下面的答案。