我在 Sheet1 中有下拉控件。然后在 Sheet2 中,值如“D2”值为 2010,“D3”值为 2020。所以现在,我想用值 2010、2011、2012、2019、2020 填充此下拉列表(在工作簿打开事件中)。如何在 VB 宏中实现这一点?有人能帮我解决这个问题吗?提前致谢
答案1
这将使用 Sheet2!D2 和 Sheet2!D3 之间的所有值填充 ActiveX ComboBox:
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 工作表模块中,以便如果 D2 或 D3 中的值发生变化,ComboBox 值也会更新:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D2:D3")) Is Nothing Then Call PopulateComboBox
End Sub