在 VBA 中创建 1:N 数组

ale*_*ef2 3 excel vba

这是一个超级简单的问题,我还无法从以前的答案中拼凑出我想要的解决方案。

我在一张纸上有 N 张图像,只想将它们分组。通常我会使用:

Sheets("Mail").Shapes.Range(Array(1,2,3,4,5)).Group

但显然如果我想从 1 到 N ,这不起作用。我目前正在尝试:

For i = 0 To Y / 33
  ReDim Preserve test(i)
  test(i) = i
Next i

Sheets("Mail").Shapes.Range(Array(test())).Group
Run Code Online (Sandbox Code Playgroud)

但我不确定如何使用我的测试对象来复制我在非一般情况下使用的格式。任何帮助表示赞赏!

Vit*_*ata 5

这是一个函数,返回从MN的数值数组:

Public Function ReturnArrayAtoB(ByVal M As Long, ByVal N As Long) As Variant

    Dim lngCounter  As Long
    Dim arrReturn   As Variant

    ReDim arrReturn(N - M)

    For lngCounter = 0 To N - M
        arrReturn(lngCounter) = M + lngCounter
    Next lngCounter

    ReturnArrayAtoB = arrReturn

End Function
Run Code Online (Sandbox Code Playgroud)

这就是你如何称呼它:

arrA = ReturnArrayAtoB(1, 5)
arrB = ReturnArrayAtoB(10, 12)
Run Code Online (Sandbox Code Playgroud)

第一个返回Array(1,2,3,4,5) ,第二个返回Array(10,11,12)