variables会在macros终止的时候持续吗?

我设置了一个excel / vbamacros,我想在循环中将数字追加到数组中。 然而,我想arrays坚持从macros使用到macros使用(即,如果数组在我星期二运行macros时被[1,3,5]填充,并且我在周三再次运行macros并追加8,9和10,那么数组需要[1,3,5,8,9,10])。 这是否可以在VBA中完成(即使整个Excel表单已closures,以后再重新打开,尽pipe它在closures之前保存)?

通过使用Static关键字声明macros,macros的variables将在函数调用之间保存它们的值。 但是当您closures工作簿时,将会清除这些值。

或者,您可以将数组保存在“工作簿的名称”集合中。

在这里输入图像说明

Function getArrayFromName(name As String) Dim s As String On Error Resume Next s = ThisWorkbook.Names(name) s = Mid(s, 3, Len(s) - 3) On Error GoTo 0 getArrayFromName = Split(s, ",") End Function Sub setArrayFromName(name As String, value As Variant) ThisWorkbook.Names.Add name, value, False End Sub