【发布时间】:2010-08-25 16:58:21
【问题描述】:
我有一个 Excel 工作簿,其中包含一些直接放置在工作表上的 ComboBox 控件。这些是表单工具栏中的标准组合框。
当用户使用“另存为”以不同的名称保存工作簿时,这会触发所有组合框上的 Change 事件,包括未激活的工作表上的组合框。这似乎不合理,因为选择实际上并没有改变。由于事件处理程序中的代码,这会导致各种不良行为。简单的“保存”不会触发该事件。
Google suggests 这是 Excel 中的一个已知问题。 rumours 是由使用命名范围作为组合框的 ListFillRange 引起的,尽管它不是易失性名称,但我已经这样做了。我正在寻找一种通过对代码和电子表格进行最小更改来防止这种情况发生的方法。有人有经过验证的解决方案吗?
【问题讨论】:
-
我无法使用 Excel 2007 重现此行为,既不使用正常范围,也不使用命名范围。也许你应该上传一个例子......
-
@belisarius 我无法上传完整的工作簿,因为它包含大量专有代码。我现在没有时间尝试制作一个小例子:(
-
无法在 Excel 2003 中确认。您能否确认您使用的是“表单”控件而不是“控件”控件? (该死,微软!)Forms 控件没有
Change事件或ListFillRange之类的属性。