gpt4 book ai didi

events - 每次我做某事时,Excel 工作表上的 ListBox 中的选择都会变为空白,为什么?

转载 作者:行者123 更新时间:2023-12-04 20:19:53 25 4
gpt4 key购买 nike

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

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

Private Sub ListBox1_Change()
Debug.Print "hello world"
End Sub

现在,如果我在列表框中选择三个值,我会在即时窗口中看到三次“Hello world”。所以我猜 Change 事件会正确触发。

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

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

这是为什么?这真让我抓狂。 Listbox1_Change 事件是否无法正常工作?

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

任何想法?

最佳答案

布鲁德

正如我之前提到的,这是因为 .Listfillrange对于这两个 ListBox 正在自动重置。

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

对于 FiltroCliente

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

现在,当您进行任何更改时,Excel 将重新计算命名范围,因此 .Listfillrange自动更新。

这是另一种检查方法。

滚动您的 Listbox1 并选择一个项目,然后在 Listbox2 中选择一个项目。您会注意到 Listbox1 自动滚动到顶部,因为它是 .Listfillrange自动更新。

解决方案

而不是 .Listfillrange 中的命名范围, 使用 .Additem 自动填充列表框

示例代码
'~~> Example : Add values from Cell A1:A10
For i = 1 To 10
ListBox1.AddItem Sheets("Sheet1").Range("A" & i).Value
Next i

高温高压

席德

关于events - 每次我做某事时,Excel 工作表上的 ListBox 中的选择都会变为空白,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9829798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com