2014-02-18 62 views
1

填充动态下拉我有我要在工作表“或”列出的项目来填充一个Excel表单上的下拉列表中,但我只需要从这个动态列表&唯一条目然后填充下拉。在Excel表格用VBA

搜查许多博客,暗示命名范围如下行来源属性,但我的名单有重复的项目&是动态的。

回答

1

你可以写这样的代码:

Dim s As String, r As Integer, nr As Integer, wr, v 
Set wr = Range("A1:A10") 
nr = wr.Rows.Count 
For r = 1 To nr 
v = wr(r, 1) 
If InStr(s, v & ",") = 0 Then 
    s = s & v & "," 
End If 
Next 
s = Left(s, Len(s) - 1) 
With Range("D1").Validation 
    .Delete 
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=s 
End With 

这将使用数据验证,我认为数据在A1:A10和D1组合框。 组合框将只包含A1:A10不同的值

如果你喜欢一个组合框ActiveX对象试试这个:

Dim s As String, r As Integer, nr As Integer, wr, v 
Set wr = Range("A1:A10") 
nr = wr.Rows.Count 
With ComboBox1 
    .Clear 
    For r = 1 To nr 
    v = wr(r, 1) 
    If InStr(s, v & ",") = 0 Then 
    s = s & v & "," 
    .AddItem (v) 
    End If 
    Next 
End With 
+0

谢谢哥们......但是指定范围是Excel中和活性X组合的另一片出现在另一张纸。那么如何激活它们呢?请帮忙。 –

+0

范围和组合(组WR = sheet1.range(“A1:A10”)和sheet1.ComboBox1)之前参照附页,应该工作。 – CRondao

+0

谢谢..它解决了 –