将下拉列表与另一个工作表中 2 个单元格的值绑定

将下拉列表与另一个工作表中 2 个单元格的值绑定

我在 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

相关内容