2017-01-20 12 views
-1

コンボボックスに項目を追加する必要があります。この項目は、ワークシートnoのuserformにあります。データは、指定された範囲に基づいて動的です。これは私のコードであり、動作しません。複数の標準があります(例:スタンダード1、スタンダード2までスタンダード。ワークシートVBAのコンボボックスにアイテムを追加するには?

Private Sub AvailStd_DropButtonClick() 

Dim choicesheet As Object, iLast As Integer, iCount As Integer 

Set choicesheet = Worksheets("Test") 

iLast = choicesheet.Range("LastLine").Cells(1, 1) 


For iCount = 1 To iLast 
With choicesheet.OLEObjects("AvailStd").Object 

    .AddItem_ 

    iCount& "." & choicesheet.Range("Standard" & iCount).Cells(1, 1) 

End With 
Next iCount 




End Sub   
+1

、テキストとしてあなたのコードを投稿してくださいしてみてください! – Tom

+0

範囲(「標準」とiCount)は何ですか? – dgorti

+1

これはコードではなく、コードのスクリーンショットです。コードをアップロードしてください(コピー可能なテキストとして) –

答えて

1

これは

Private Sub AvailStd_DropButtonClick() 
    Static filled As Boolean '<--| static variable to last between events 

    Dim iLast As Long, iCount As Long 
    Dim cb As ComboBox 

    If filled Then '<--| if combobox already filled up then exit and let the user selection be taken into account 
     filled = False '<--| next time fill the combobox up 
     Exit Sub 
    Else '<--| otherwise fill the combobox up 
     With Worksheets("Test") 
      iLast = .Range("LastLine").Cells(1, 1) 
      Set cb = .OLEObjects("AvailStd").Object 
      cb.Clear 
      For iCount = 1 To iLast 
       cb.AddItem .Range("Standard" & iCount).Cells(1, 1) 
      Next 
      filled = True '<--| mark combobox is already filled up 
     End With 
    End If 
End Sub 
+0

これは問題なく動作しますが、コンボボックスで項目を選択することはできません。 –

+0

編集されたコードを参照してください。あなたの質問を解決した場合は、回答を受け入れたものとしてマークしてください。ありがとうございました! – user3598756

+0

@ mfo_28、それを通過しましたか? – user3598756

関連する問題