将变体分配给组合框,反之亦然

Assigning a variant to a combobox and vice-versa

我正在尝试为用户窗体中的组合框的“值”分配变体以存储列表,以便我可以在初始化用户窗体时将变体的“值”重新分配给组合框。

这是我用来在用户窗体关闭之前为我的变体分配组合框列表值的代码:

Dim S()
Private Sub ExitButton_Click()
ReDim S(1 To NewRecordUserForm.RepCombo.ListCount)
S = NewRecordUserForm.RepCombo.List
Unload Me
End Sub

然后我在一个单独的子程序中使用这组代码在打开用户窗体时初始化组合框:

Private Sub UserForm_Initialize()

NewRecordUserForm.RepCombo.List = S

End Sub

请注意,Dim S() 已声明为全局变量。我收到以下错误消息:

"Run-error '380':

Could not set the list property. Invalid property value."

Dim ArrRep() As Variant

Public Sub PopulateCombos()

NewRecordUserForm.RepCombo.List = ArrRep

End Sub

Public Sub SaveCombos()

ReDim ArrRep(1 To NewRecordUserForm.RepCombo.ListCount)
ArrRep = NewRecordUserForm.RepCombo.List

End Sub

我在打开用户窗体时调用了第一个子程序,在它关闭之前调用了第二个子程序。成功了!