我正在设置一个excel/vba宏,在该宏中,我希望在循环期间将数字附加到数组中。但是,我希望数组能够从宏用到宏用(即。如果我在星期二运行宏时数组被1,3,5填充,并且我在星期三再次运行宏并追加8,9和10,那么数组需要是1,3,5, 8,9,10)。在VBA中可以做到这一点吗(即使整个excel工作表被关闭,然后重新打开-尽管它是在关闭之前保存的-)?
发布于 2016-08-12 06:13:33
通过使用Static关键字声明宏,宏的变量将在两次函数调用之间保存它们的值。但当您关闭工作簿时,将擦除这些值。
或者,您可以将数组保存在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 Subhttps://stackoverflow.com/questions/38906517
复制相似问题