Events 每次我做某件事时,Excel工作表列表框中的选择都会变为空白,为什么?

Events 每次我做某件事时,Excel工作表列表框中的选择都会变为空白,为什么?,events,excel,listbox,vba,Events,Excel,Listbox,Vba,因此,在Excel工作簿的Sheet1上有一个名为ListBox1的ActiveX ListBox控件。我在上面启用了多个选项 我还在Sheet1对象中添加了一些代码: Private Sub ListBox1_Change() Debug.Print "hello world" End Sub 现在,如果我在列表框中选择三个值,我会在即时窗口中看到三次“Hello world”。所以我猜变更事件触发正确 当我选择列表框所在的同一工作表中的任何单元格,并对其执行操作(例如,在其中键入“

因此,在Excel工作簿的Sheet1上有一个名为ListBox1的ActiveX ListBox控件。我在上面启用了多个选项

我还在Sheet1对象中添加了一些代码:

Private Sub ListBox1_Change()
    Debug.Print "hello world"
End Sub
现在,如果我在列表框中选择三个值,我会在即时窗口中看到三次“Hello world”。所以我猜变更事件触发正确

当我选择列表框所在的同一工作表中的任何单元格,并对其执行操作(例如,在其中键入“ABCDE”,或按Delete键)时,我在列表框中所做的选择将变为空白

因此,如果我选择了列表中的第一个值,然后单击单元格“A1”,在其中键入“Hello”并按Enter键,则在我按下键的那一刻,第一个值将从列表框中取消选择

这到底是为什么?这让我快发疯了。Listbox1_更改事件是否工作不正常

不过这很有趣,因为我在即时窗口中没有看到额外的“Hello world”,所以我猜事件实际上并没有触发

有什么想法吗?布鲁德

正如我前面提到的,这是因为两个列表框的
.Listfillrange
都会自动重置

您已经为
.Listfillrange
指定了一个命名范围,命名范围的公式为

对于
FiltroClient

=IF(CollClientePicker<>1,OFFSET(DatiMaschera!$D$2,0,0,COUNTA(DatiMaschera!$D:$D)-1,1),"")


希德

你是神奇的希德。我想我可以用这个来代替动态范围,但我担心填写一个包含15k个项目的列表会花费太多时间。相反,它像闪电一样快!谢谢你,伙计!
'~~> Example : Add values from Cell A1:A10
For i = 1 To 10
    ListBox1.AddItem Sheets("Sheet1").Range("A" & i).Value
Next i