2017-05-08 90 views
1

我正在開發一個應用程序,在excel中使用VBA表單。在一種形式中,我有一個組合框,讓用戶選擇客戶名稱,這個組合框的行源是一個命名範圍(客戶表的名稱列)。一切工作正常,但我需要在表列中不存在的組合框中添加1個或多個額外的項目。例如,我需要在cobmobox中添加「全部」項目,以便用戶可以選擇特定的客戶名稱或全部。在其他地方,我不想在具有相同行源的組合框中添加「其他」項目,因此如果客戶是新用戶,則可以選擇其他,然後在文本框中鍵入名稱。用表格列填充VBA userform的組合框加上一個附加選項

我嘗試下面的代碼添加項目

Private Sub UserForm_Activate() 
With Me.testCombo 
.AddItem "All" 
End With 
End Sub 

,但我得到的錯誤 運行時錯誤「70」 權限被拒絕

如果我從ComboBox那麼上面的代碼中刪除行來源屬性工作但只有一個項目「全部」顯示。

注:我不想在客戶表中添加「全部」和「其他」,這可能是簡單的解決方案,但會導致其他問題。

+1

當設置了'RowSource'屬性時,不能添加其他項目。取消設置'RowSource';將項目從「UserForm_Initialize」中的範圍逐個添加到組合中,然後您可以添加其他選項。 –

+0

除了如何標記這個解決?我已經解決了這個問題。 – user21354

回答

1

嘗試這樣的:

Private Sub UserForm_Activate() 

    Dim rowValue  As Variant 
    Dim lngCount  As Long 
    Dim myCell   As Range 
    Dim varCombo()  As Variant 

    With Me.ComboBox1 

     ReDim varCombo(Me.ComboBox1.ListCount)   

     For Each myCell In Range(.RowSource) 
      varCombo(lngCount) = myCell.value 
      lngCount = lngCount + 1 
     Next myCell 

     .RowSource = "" 

     For lngCount = LBound(varCombo) To UBound(varCombo) - 1 
      .AddItem CStr(varCombo(lngCount)) 
     Next lngCount 

     .AddItem "All" 
     .AddItem "Nothing" 

    End With 

End Sub 

正如在評論中提到的,A.S.H.,您應該取消設置.RowSource財產。但是,如果您運行代碼兩次,則不會丟失它,這將是相同的。在我的代碼中,我使用UBound(varCombo) - 1,因爲我在上一次循環單元格時使用了lngCount=lngCount+1

0

像這樣的事情可以做,你需要什麼

Dim a() As Variant 
Dim b() As String 
Dim s As String 

a = Application.Transpose(Range("a1:a5").Value) 
s = "Please select;" & Join(a, ";") 
Erase a 
b = Split(s, ";") 

Me.ComboBox1.List = b 
0

謝謝大家的幫助,主要的問題是,如果許可是行來源設置,則不能在ComboBox中添加任何項目作爲A.S.H說。所以我從表單中的屬性中刪除RowSource。並寫了下面的代碼,它似乎一切工作正常。我希望我的代碼足夠簡單。

Private Sub fillComboBox() 
     Dim comboData As Range 

     With Me.CWR_CustName 
      ' first option of comobobox will be All 
      .AddItem "All" 

      For RW_Cust = 1 To Range("tblCust").Rows.Count 

       ' add each customer name from customer table name column 
       .AddItem (Range("tblCust[Name]")(RW_Cust)) 

      Next RW_Cust 

     End With 
End Sub 
相關問題