Привязать раскрывающийся список со значениями из 2 ячеек в другом листе

У меня есть выпадающий контроль в sheet1. Затем на листе 2 значения, такие как "D2" значение 2010, "D3" значение 2020. Итак, теперь я хочу заполнить этот раскрывающийся список значениями 2010,2011,2012,,,,2019,2020(в событии открытия рабочей книги). Как я могу добиться этого в VB Macro.. Может кто-нибудь помочь мне решить эту проблему? заранее спасибо

1 ответ

Решение

Это заполнит ActiveX ComboBox всеми значениями между Sheet2!D2 и Sheet2!D3:

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

Чтобы запустить, когда книга открывается, поместите это в модуль книги:

Private Sub Workbook_Open()
    Call PopulateComboBox
End Sub

Вы также можете поместить это в модуль листа Sheet2, чтобы значения ComboBox обновлялись при изменении значений в D2 или D3:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D2:D3")) Is Nothing Then Call PopulateComboBox
End Sub
Другие вопросы по тегам