【发布时间】:2018-08-22 01:35:40
【问题描述】:
我是 VBA 新手,我似乎无法提出一个非常简单的概念 - 将一个数组分配给另一个数组,它们的大小和类型都相同。就像在这个例子中一样:
Option Explicit
Sub main()
Dim arr1(2), arr2(2) As Double
arr1(0) = 5
arr1(1) = 10
arr2 = arr1 'error here
Debug.Print arr2(0)
Debug.Print arr2(0)
End Sub
运行会返回错误
“无法分配给数组”
现在,我知道我可以使用 For 循环遍历每个元素,但在某些高级情况下,使用它是不切实际的 - 例如,我有一个返回数组的慢速加载函数,因此,我只想运行一次,获取整个返回值并分配给其他数组,如下所示:
arr1 = Very_Slow_Function_That_Returns_An_Array()
但显然,这也不起作用,并且会产生相同的错误。那么,可以做些什么呢?有人可以就如何将整个数组分配给另一个数组而不必遍历每个元素提供一些建议吗?
【问题讨论】:
-
您将
arr1定义为Variant并将arr2定义为Double- 这是个问题。 -
This us is a nearly-XY 问题:您可能想询问为什么'Very_Slow_Function_That_Returns_An_Array()' 反而这么慢!