我正在设置一个excel / vba宏,我希望在循环期间将数字附加到数组中。但是,我希望数组从宏使用持续到宏使用(即,如果在星期二运行宏时数组填充[1,3,5],并且我在星期三再次运行宏并追加8,9和10,那么数组需要[1,3,5,8,9,10])。这是否可以在VBA中完成(即使整个Excel工作表已关闭并且稍后重新打开 - 虽然它在关闭之前保存 - )?
答案 0 :(得分:2)
通过使用Static关键字声明宏,然后Macro的变量将在函数调用之间保存它们的值。但是当您关闭工作簿时将删除这些值。
或者,您可以将数组保存在Workbook的Names集合中。
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