我有一个范围包含单元格,其内容我想用于通过RowSource属性填充Userform ComboBox。 但是,我似乎没有让它工作。我尝试了各种不同的方法,但似乎没有任何作用!
以下是我尝试过的一系列方法:
cb_FcnName.RowSource = Worksheets(3).Name & "!" & NameRng.Address
cb_FcnName.RowSource = Worksheets(3).Name & "!" & NameRng.Value
cb_FcnName.RowSource = Worksheets(3).Name & "!" & Range(NameRng)
cb_FcnName.RowSource = Worksheets(3).Name & "!" & Range("NameRng")
cb_FcnName.RowSource = Worksheets(3).Name & "!" & Range("NameRng").Address
cb_FcnName.RowSource = "'" & Worksheets(3).Name & "'!" & NameRng.Address
cb_FcnName.RowSource = Worksheets("Features") & "!" & NameRng.Value
cb_FcnName.RowSource = "'" & Worksheets("Features") & "!'" & "B2.Value"
有没有人知道如何将单元格中的值与我的ComboBox相关联?即使是正确方向的指针也非常感谢!
非常感谢提前!
编辑:不确定这是否是问题的一部分,但范围不是连续的!
答案 0 :(得分:1)
你应该改变这个:
cb_FcnName.RowSource = Worksheets("Features") & "!" & NameRng.Value
对于这样的事情:
cb_FcnName.List = Worksheets("Features").Range("NameRng").Value
或者这也可以:
cb_FcnName.RowSource = "NameRng"
答案 1 :(得分:1)
这很麻烦,但我认为它会起作用。它将值放在AQ列中,只需更改为您不使用或放在隐藏工作表上的某个位置。我上面说的替代方法是使用AddItem。
Private Sub UserForm_Initialize()
Dim r As Range, r1 As Range
With Worksheets(2)
Set r = Union(.Range("A1:A10"), .Range("B1:B3"))
For Each r1 In r.Areas
r1.Copy .Range("AQ" & Rows.Count).End(xlUp)(2)
Next r1
Me.ComboBox1.RowSource = .Name & "!" & .Range("AQ2").CurrentRegion.Address
End With
End Sub
答案 2 :(得分:0)
试试这个:
cb_FcnName.RowSource = Range("NameRng").Worksheet.Name & "!" & Range("NameRng").Address
可以进一步简化,但上面假设您有一个命名范围,但它不会猜测它是什么工作表。