在 Excel VBA 中将一个变体分配给另一个变体

Assigning one Variant to Another in Excel VBA

所以我的 Excel 工作表上有两列(不相邻的)数据,条目数不同。我将他们的数据加载到两个变体中,称为 arr1 和 arr2。在接下来的处理中,我想引用条目最少和条目最多的列,所以我定义了两个Variant变量shortArr和longArr,并根据谁的Ubound()越大,给他们赋值arr1和arr2。我的问题是:

  1. 将一个变体分配给另一个变体是否合法,例如 "shortArr = arr1"?
  2. 如果是,变体是否需要首先具有相同的边界?
  3. 如果我这样做,内存使用量会加倍吗,或者 shortArr 和 arr1 基本上只是指向同一个数组的指针吗?

提前致谢!

如果没有循环,VBA 您想要的大部分内容都无法实现:

  1. Is it legal to assign one Variant to another, like "shortArr = arr1"?
  2. If it is, do the Variants need to have the same bounds first?

是的,这很正常。你可以分配直到时间,第二个数组没有尺寸。

Option Explicit

Sub Sample()
    Dim Arr1(1 To 2), Arr2()

    Arr1(1) = 2: Arr1(2) = 3

    Arr2 = Arr1
    MsgBox Arr2(2)
End Sub

Will memory usage be doubled if I do this, or will shortArr and arr1 basically just be pointers to the same array?

是的。它们将是指向不同数组的指针。