访问不同子中的数组

时间:2016-12-20 02:04:07

标签: arrays excel-vba vba excel

我有一个创建数组的子数据并用数据填充它,但我想在不同的子/函数中使用相同的数组(从前一个子数据中记录的数据)。有没有办法实现这一目标。

我对VBA很新,所以也许我错过了一些明显的东西。

提前致谢。

编辑:

'//FIRST CODE
Dim MyResults() As String
'
'
'Fill MyResults() with data
'
'
Call ComboToText

'//SECOND CODE
Private Sub ComboToText()
'// If there is more than one item in MyResults() use combo box. For one item use Textbox.

Dim n As Long

If UBound(MyResults) > 1 Then
    txtPCB.Visible = False
    With cmbPCB
        .Visible = True
        For n = LBound(MyResults) To UBound(MyResults)
            .AddItem MyResults(n)
        Next n
        .Style = fmStyleDropDownCombo
    End With
Else
    txtPCB.Text = MyResults(1)
End With

End Sub

每当我试图运行时,VBA都坚持在第二个代码中声明MyResults()。如果我再次声明它,我不会丢失已经存在的数据吗?

1 个答案:

答案 0 :(得分:1)

正如YowE3K所说,你可以将数组作为参数传递给另一个子:

Dim MyResults() As String
'Fill MyResults() with data
Call ComboToText(MyResults)

'//SECOND CODE
Private Sub ComboToText(MyResults() As String)
...

可以像我一样在两个Subs中使用相同的名称,但你也可以在第二个Sub中使用不同的名称。