VBA:创建和排列一次,在Excel中多次调用



我有一个关于在要调用的打开工作簿中保存数组的问题。

我有一个在运行宏时创建的大数组,从头到尾运行大约需要 10 秒(不是禁止,但足够不方便)。

我希望能够创建一次数组,然后使用工作表中的更改来更新从中显示的数据。

例如:我在数组的第一维中存储了多个客户,然后在更深层次中存储了有关他们的更多详细信息。我希望使用对单元格 A1 的用户输入更改(输入新的客户 ID)从数组中调用一组不同的值 - 并显示。

在运行宏来创建整个数组之前,我已经完成了此操作 - 但这次我想避免"创建数组"过程,而只是将其存储在工作表中。

有没有简单的方法可以做到这一点?

提前谢谢你!

有两种典型的方法:

  1. 将数组值存储在工作簿中某处的单元格块中
  2. Dim模块中subs上方的数组(这将使它成为永久性的)

看:

http://www.cpearson.com/excel/Scope.aspx

使数组全局(可从所有工作簿访问),在模块中声明它,在任何子\函数之前:

Option explicit
Public Arr() as string 'for example

Sub firstsub()
....
End sub

此外,为了使数组的范围更小,您可以在工作表的代码中将其声明为私有。但这实现起来会更棘手,因为 10s 宏需要与数组交互。

最新更新