使用 VBA Excel 同时向列表框和组合框添加/删除项目

Adding / removing items to listbox and combobox simultaneously using VBA Excel

提问人:dudi 提问时间:11/15/2023 更新时间:11/15/2023 访问量:43

问:

我是这里的新用户,但有经验的读者:)

我正在寻找一种修改 ListBox 和 ComboBox 中列表的方法,它们相互依赖。 即在 Combo 中选择项目应将其添加到 ListBox。好吧,这很容易,但是...... ...必须从组合中删除相同的项目。 反之亦然 - 从 ListBox 中删除结果,将其添加到组合列表。

请帮忙

在这里编码:

Private Sub ComboBox1_Change()
    With ComboBox1
        If .ListCount > 0 Then
            ListBox1.AddItem (.ListIndex) ' <<< it works
            .RemoveItem (ComboBox1.ListIndex)' <<< doesn't work
        End If
    End With
End Sub

Private Sub ListBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 46 Then ' <<< DEL key
        With Me.ListBox1
            If .ListIndex > 0 Then 'first item is unremovable
                ComboBox1.AddItem .List(.ListIndex)'<<<doesn't work
                .RemoveItem (.ListIndex)' <<<works
            End If
        End With
    End If
End Sub

Excel VBA 组合

评论

0赞 CDP1802 11/15/2023
第二次触发事件 - 请参阅此处.RemoveItemComboBox1_Change()

答:

0赞 Mika O. 11/15/2023 #1

当您在错误出现时点击“调试”按钮,然后将鼠标悬停在 上时,您可以看到问题。值 -1 表示没有选定的值。ComboBox1.ListIndex

将代码从一个事件移动到另一个事件。然后你会得到正确的值。ComboBox_ChangeComboBox1_ClickComboBox1.ListIndex