清除Workbook_Open上的ComboBox

时间:2016-11-05 06:48:27

标签: excel vba excel-vba combobox

我在Workbook_Open事件处理程序中有以下代码:

   Sheet1.ComboBox1.Clear
   Sheet1.ComboBox2.Clear

   Set Rng = Sheet2.Range("A3", Sheet2.Cells(Rows.Count, "A").End(xlUp))
   With CreateObject("Scripting.Dictionary")
   For Each cel In Rng
   If Not .exists(cel.Value) Then
        .Add cel.Value, Nothing
    End If

 Sheet1.ComboBox1.List = .keys

我的问题是它没有在ComboBox1上清除Workbook_Open并显示之前选择的值。

我也使用了以下

     Sheet1.ComboBox1.ListIndex = -1 ' instead of sheet1.combobox1.clear
     Sheet1.ComboBox2.ListIndex = -1 ' instead of sheet1.combobox2.clear

但问题仍然存在。

有人可以提出解决方案吗?在此先感谢。

1 个答案:

答案 0 :(得分:0)

我对你的代码做了一些更正:

Option Explicit

Private Sub Workbook_Open()

    Dim Rng As Range
    Dim cel As Range

    Sheet1.ComboBox1.Clear
    Sheet1.ComboBox2.Clear

    Set Rng = Sheet2.Range("A3", Sheet2.Cells(Rows.Count, "A").End(xlUp))

    With CreateObject("Scripting.Dictionary")

        For Each cel In Rng
            If Not .exists(cel.Value) Then
                .Add cel.Value, Nothing
            End If
        Next cel

        Sheet1.ComboBox1.List = .keys

    End With

End Sub

如果我手动将项目添加到ComboBox并保存工作簿,请关闭工作簿,然后重新打开工作簿,然后列表将从Sheet2恢复为不同的列表。

你能试试吗?