是否可以在Excel中的VBA中永久存储数组元素?

use*_*061 5 arrays variables excel vba store

我在Excel中编写了使用动态数组的宏.用户将向该数组添加元素.

是否可以永久存储元素,因此即使在工作簿关闭后元素也可用?

诀窍是我不想在工作表上存储元素并在工作簿打开时将它们插回到数组,而是将元素永久保存在数组中.

Raj*_*ore 6

最好的方法之一是将数组值存储在工作表中,并使用VBA将工作表标记为隐藏.

Me.Worksheets("ArrayValuesWorksheet").Visible = False
Run Code Online (Sandbox Code Playgroud)

如果您使用本地CSV文件,注册表等其他内容,那么只需将工作簿移动到不同的计算机上,代码就会表现不同,您将失去拥有该阵列的多个副本的能力.

编辑(@ Reafidy以下评论中的优秀建议)

  • 使用`Sheets("ArrayValuesWorksheet").Visible = xlVeryHidden`来防止工作表出现在取消隐藏列表中. (16认同)
  • 您还可以通过转到工具/ VBA项目属性/保护选项卡并输入密码来密码保护代码和“非常隐藏”的表。用户将无法取消隐藏“非常隐藏”的工作表。PS LOL(Microsoft的术语“非常隐秘”)。我的意思是,我去过那里一直很忙……看到一个带有该名称的枚举真是有趣。 (2认同)
  • 宏是工作表本身的一部分 - 如果不分发工作表,则无法分发宏.有关详细信息,请发布单独的问题. (2认同)