У меня есть выпадающий контроль в sheet1. Затем в листе 2 значения, такие как, «D2» значение 2010 года, «D3» значение 2020 года. Итак, теперь я хочу заполнить этот раскрывающийся список значениями 2010,2011,2012 ,,,, 2019,2020(в событии открытия рабочей книги). Как я могу добиться этого в VB Macro .. Может кто-нибудь помочь мне решить это? заранее спасибо
1 ответ
0
Это заполнит 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