arrays - 数组在代码结束后保留​​值

标签 arrays vba excel variables storage

我想知道是否有办法在代码结束并关闭 excel 文件后将一些值保存在数组中。

这个想法是有一个包含一些值的数组。运行代码时,我可能会也可能不会修改它的一些值,当我关闭文件时,我希望这个数组存在并保留它的值。
我的意思是,当我重新打开文件并运行代码时,所有其他变量都将重新初始化(显然会再次获得默认值),但这个特殊数组仍将存储其所有值(所以我当然不会在该代码中重新声明它)。

避免此问题的一种方法是将数组中包含的所有值存储在工作表中,并且每当再次运行代码时,将它们放回新数组中。
但我想知道是否有办法在不使用工作表的情况下做到这一点。

最佳答案

人们倾向于将工作表视为 Excel 的核心和灵魂,因此不愿意做出“如此巨大的努力”来仅存储一个数组。从 Excel 的角度来看,工作表只不过是一个数组,当它为空时只占用几个字节的内存。我会争辩说,VeryHidden 工作表正是您所要求的,实际上与 Word 的文档变量非常相似。

作为替代方案,我可以建议使用其中一个内置属性,例如关键字或评论,来存储可以拆分为数组的字符串。这可能更符合您的喜好,但我认为它较差,因为用户可以编辑它,除非您可以利用它来发挥自己的优势。

从技术上讲,出于所有实际目的,VeryHidden 工作表正是您所要求的。您的抵制是基于心理学,而不是理性 - 至少,这就是我说服自己的方式,而且我可以说,对我创建的工作表数量更加自由,这给了我更多的自由,而且没有明显的成本。

关于arrays - 数组在代码结束后保留​​值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45977358/

相关文章:

c - 在内部的双指针上使用 malloc

python - 从第三个数组中的两个数组中有效地获取每对元素的最小值

excel - 搜索值并返回 Excel 中的整行

vba - 在单击其他单元格时设置单元格值

具有非连续范围的 Excel INDIRECT() ...仅适用于 COUNTIF()?

python - 如何增加 csv 文件的默认列宽,以便在打开文件时所有文本都能正确显示?

c - 将文本文件中的行读入数组

javascript - 单个 View 上的多个 ng-repeat

VBA - 命名和实例化类模块

VBA运行时错误 '-2147221233 (8004010f)'