【问题标题】:Public array variable of variable size可变大小的公共数组变量
【发布时间】:2017-01-19 20:16:31
【问题描述】:

我想在 Excel VBA 中有一个全局数组变量,其数组大小取决于第二个全局变量。

我正在尝试这样的事情..

Public int1 As Integer

Sub foo()
    int1 =  '##read from ini file
    Public varArray(1 To int1) As Variant
    For i = 1 To int1
        varArray(i)= '##read from ini file
    Next i
    Call SomeProcedure '##in another module where varArray is used
End Sub

现在显然这不起作用,因为必须在子外部声明全局公式,而且当我给它们一个范围时,似乎数组也需要一个常量。有什么办法可以通过声明来做到这一点

Public varArray() As Integer

然后再给它一些元素?它似乎不允许我这样做,我没有尝试其他任何方法......

【问题讨论】:

  • 您可以随时将数组传递给下一个子。
  • 但是您只需在 sub foo() ReDim varArray(1 To int1) As Variant987654323@ 中重新调整数组

标签: arrays excel vba global-variables


【解决方案1】:

正如你提到的,数组必须在子外部声明为全局。

要调整数组大小,请在确定数组需要多大后,在另一个函数中使用ReDim 命令。

Dim varArray() As Variant

Public Sub Foo()
    'Determine size of array
    'For example, let's say you determine you need 15 elements
    ArraySize = 15 'Your variable here, instead of 15

    ReDim varArray(1 To ArraySize)

    'Debug Print statement to confirm array dimensions
    Debug.Print LBound(varArray) & " - " & UBound(varArray)
End Sub

【讨论】:

  • 非常感谢,正是我想要的。
猜你喜欢
  • 1970-01-01
  • 2012-03-22
  • 2012-05-12
  • 1970-01-01
  • 2017-06-16
  • 2012-10-10
  • 2010-09-20
  • 2016-09-17
  • 2018-07-29
相关资源
最近更新 更多