我有一个创建数组的子数据并用数据填充它,但我想在不同的子/函数中使用相同的数组(从前一个子数据中记录的数据)。有没有办法实现这一目标。
我对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()
。如果我再次声明它,我不会丢失已经存在的数据吗?
答案 0 :(得分:1)
正如YowE3K所说,你可以将数组作为参数传递给另一个子:
Dim MyResults() As String
'Fill MyResults() with data
Call ComboToText(MyResults)
'//SECOND CODE
Private Sub ComboToText(MyResults() As String)
...
可以像我一样在两个Subs中使用相同的名称,但你也可以在第二个Sub中使用不同的名称。