簡體   English   中英

使用VBA在Excel表單中填充動態下拉菜單

[英]Populate dynamic dropdown in Excel form with VBA

我在一個Excel表單上有一個下拉菜單,我想用工作表“ OR”中列出的項目填充該表單,但是我只需要此動態列表中的唯一條目,然后填充該下拉列表。

搜索了許多博客,建議將命名范圍作為Rowsource屬性,但我的列表中有重復項,並且是動態的。

您可以編寫以下代碼:

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中,而ComboBox在D1中。 ComboBox將僅包含A1:A10不同的值

如果您更喜歡ComboBox 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM