Binden Sie die Dropdown-Liste mit den Werten aus 2 Zellen in einem anderen Arbeitsblatt

501
KaviSuja

Ich habe Dropdown-Inhalt in Sheet1. Dann in Sheet2 die Werte wie "D2" -Wert 2010, "D3" -Wert 2020. Nun möchte ich diese Dropdown-Liste mit Werten 2010,2011,2012 ,,,, 2019,2020 (auf offenem Arbeitsmappen-Ereignis) auffüllen. Wie kann ich dies in VB Macro erreichen? Kann mir jemand helfen, dieses Problem zu lösen? Danke im Voraus

0
Von welcher Art von Dropdown-Steuerung sprechen Sie? Handelt es sich um eine Datenvalidierungsliste, eine Formular-Kombinationsbox, eine ActiveX-Combobox oder etwas anderes? Olly vor 6 Jahren 0
Seine ActiveX-Combobox KaviSuja vor 6 Jahren 0

1 Antwort auf die Frage

0
Olly

Dadurch wird die ActiveX-ComboBox mit allen Werten zwischen Sheet2! D2 und Sheet2! D3 aufgefüllt:

Sub PopulateComboBox() Dim l As Long Dim cb As ComboBox  On Error GoTo Terminate  Set cb = Sheet1.ComboBox1  cb.Clear  With Sheet2 For l = .Range("D2").Value To .Range("D3").Value cb.AddItem l Next l End With  Terminate: If Err Then Debug.Print "Error", Err.Number, Err.Description Err.Clear End If End Sub 

Um es auszuführen, wenn die Arbeitsmappe geöffnet wird, fügen Sie dies in das Arbeitsbuchmodul ein:

Private Sub Workbook_Open() Call PopulateComboBox End Sub 

Möglicherweise möchten Sie dies auch in das Sheet2-Arbeitsblattmodul einfügen, damit die ComboBox-Werte aktualisiert werden, wenn sich die Werte in D2 oder D3 ändern:

Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("D2:D3")) Is Nothing Then Call PopulateComboBox End Sub 
Hallo olly thak für deine Antwort. Es funktioniert für mich, während ich zu sheet3 wechsle und zu sheet2 komme, aber beim Öffnen der Arbeitsmappe nicht richtig geladen wurde. Ich habe 'With Worksheets ("MonthYearConfig")' im Ereignis workbook_open verwendet KaviSuja vor 6 Jahren 0
Rufen Sie einfach die Unterroutine aus dem Ereignis workbook_open auf. Olly vor 6 Jahren 0