在Excel VBA中将一个变量指定给另一个变量

在Excel VBA中将一个变量指定给另一个变量,excel,variant,vba,Excel,Variant,Vba,因此,我的Excel工作表上有两列(不是相邻的)数据,有不同数量的条目。我将它们的数据加载到两个变量中,称为arr1和arr2。在接下来的处理过程中,我希望引用条目最少和最多的列,因此我定义了两个变量shortArr和longArr,并根据其Ubound()较大的变量为它们分配arr1和arr2。我的问题是: 将一个变体分配给另一个变体(如“shortArr=arr1”)合法吗 如果是,变体是否需要先具有相同的边界 如果我这样做,内存使用率会加倍吗?还是shortArr和arr1基本上只是指向同

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

  • 将一个变体分配给另一个变体(如“shortArr=arr1”)合法吗
  • 如果是,变体是否需要先具有相同的边界
  • 如果我这样做,内存使用率会加倍吗?还是shortArr和arr1基本上只是指向同一数组的指针

  • 提前谢谢

    在VBA中,如果没有循环,大多数您想要的东西都无法实现:

  • 将一个变体分配给另一个变体(如“shortArr=arr1”)合法吗
  • 如果是,变体是否需要先具有相同的边界
  • 是的,这很正常。您可以指定,直到第二个数组未标注尺寸为止

    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基本上只是指向同一数组的指针


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

    谢谢Siddharth!我原以为第二个数组需要标注尺寸,但它没有标注尺寸,这太棒了。您知道Arr1的内容是否被复制了吗?请检查最后一行
    MsgBox Arr2(2)
    ;)哦,好的。内存加倍很烦人,但我想这可以省去我到处写嵌套循环的麻烦。谢谢你的帮助!