Привязать раскрывающийся список со значениями из 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