【发布时间】:2015-01-04 22:17:11
【问题描述】:
我无法在 Mac 上的用户窗体上填充我的 ComboBox。
我创建了一个名为“nameList”的动态命名范围,其公式如下所示:
"=OFFSET('MEMBERS LIST'!$D$4,0,0,COUNTA('MEMBERS LIST'!$D:$D)-1)"
在 Sheet1(名称:HOME)上,我创建了一个宏,它调用了一个 UserForm(名称:PostForm),我在其中创建了一个 ComboBox(名称:username_Insert)。在 Windows 上,我只需转到“属性”框并在“行源”属性中键入“nameList”。这将使用我的动态名称列表填充 ComboBox。但是,当我尝试在 Mac 上阅读我的工作表时,列表显示为空。
我在代码中尝试了多种解决方案:
Private Sub PostForm_Initialize()
'Populate Username combo box.
'Me.username_Insert.List = [nameList]
'Me.username_Insert.List = Range("nameList")
'Me.username_Insert.List = Range([nameList])
'Me.username_Insert.AddItem = [nameList]
End Sub
我不确定我是否在正确的 sub 中输入代码,或者我是否应该在以下 sub 中输入我的代码:Private Sub username_Insert_Change()
/*******已解决*******/
修改了代码以接收我拥有的其他动态列表,得到以下代码。实现到用户窗体代码中,就像一个魅力:
Private Sub UserForm_Activate()
Dim nme As Range
Dim ws As Worksheet
Set ws = Sheets("Members List")
For Each nme In ws.Range("nameList")
Me.username_Insert.AddItem nme.Value
Next nme
Set ws = Sheets("SONY DATA")
For Each nme In ws.Range("phoneList")
Me.phone_Insert.AddItem nme.Value
Next nme
For Each nme In ws.Range("ampm")
Me.daynight_Insert.AddItem nme.Value
Next nme
For Each nme In ws.Range("typeList")
Me.type_Insert.AddItem nme.Value
Next nme
End Sub
【问题讨论】: