我有一个关于在要调用的打开工作簿中保存数组的问题。
我有一个在运行宏时创建的大数组,从头到尾运行大约需要 10 秒(不是禁止,但足够不方便)。
我希望能够创建一次数组,然后使用工作表中的更改来更新从中显示的数据。
例如:我在数组的第一维中存储了多个客户,然后在更深层次中存储了有关他们的更多详细信息。我希望使用对单元格 A1 的用户输入更改(输入新的客户 ID)从数组中调用一组不同的值 - 并显示。
在运行宏来创建整个数组之前,我已经完成了此操作 - 但这次我想避免"创建数组"过程,而只是将其存储在工作表中。
有没有简单的方法可以做到这一点?
提前谢谢你!
有两种典型的方法:
- 将数组值存储在工作簿中某处的单元格块中
-
Dim
模块中subs上方的数组(这将使它成为永久性的)
看:
http://www.cpearson.com/excel/Scope.aspx
使数组全局(可从所有工作簿访问),在模块中声明它,在任何子\函数之前:
Option explicit
Public Arr() as string 'for example
Sub firstsub()
....
End sub
此外,为了使数组的范围更小,您可以在工作表的代码中将其声明为私有。但这实现起来会更棘手,因为 10s 宏需要与数组交互。