在Excel VBA中将一个Variant分配给另一个

时间:2015-06-13 19:11:08

标签: excel-vba variant vba excel

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

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

2 个答案:

答案 0 :(得分:1)

  
      
  1. 将一个Variant分配给另一个变体是否合法,例如" shortArr = arr1"?
  2.   
  3. 如果是,那么变体首先需要具有相同的边界吗?
  4.   

是的,这很正常。您可以指定直到时间,第二个数组没有标注尺寸。

Option Explicit

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

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

    Arr2 = Arr1
    MsgBox Arr2(2)
End Sub
  

如果我这样做,内存使用量会翻倍,还是shortArr和arr1基本上只是指向同一个数组?

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

答案 1 :(得分:0)

在没有循环的情况下,无法在VBA中实现您想要的大部分内容:

enter image description here