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

时间:2017-10-14 17:50:01

标签: arrays excel vba excel-vba

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

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

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

例如:我有多个客户存储在数组的第一维中,然后在更深层次上有更详细的信息。我希望将用户输入更改用于单元格A1(放入新的客户ID)以从数组中调用另一组值 - 并显示。

我之前在运行宏来创建整个数组之前已经这样做了 - 但这次我想避免'create array'进程,只是将它存储在工作表中。

有一种简单的方法吗?

提前谢谢!

2 个答案:

答案 0 :(得分:0)

2 典型方式:

  1. 将数组值存储在工作簿中某处的单元格区域中
  2. Dim数组 模块中的潜艇(这将使其有些永久)
  3. 请参阅:

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

答案 1 :(得分:0)

使数组全局化(可从所有工作簿访问), 在任何sub \ function:

之前在模块中声明它
Option explicit

Public Arr() as string 'for example


Sub firstsub()
....
End sub

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