gpt4 book ai didi

excel - Excel 的 ActiveX 组合框中存在错误?

转载 作者:行者123 更新时间:2023-12-02 10:20:12 24 4
gpt4 key购买 nike

我注意到在以下情况下我会遇到各种烦人的错误:

  • 我的工作表(不是 Excel 表单)上有 ActiveX 组合框
  • 组合框具有与其链接的事件代码(例如,onchange 事件)
  • 我使用他们的 listfillrange 或 linkedcell 属性(清除这些属性似乎可以缓解很多问题)
  • (不确定是否已连接)但目标链接单元格上有数据验证。

我编写了一个相当复杂的 Excel 应用程序,它执行大量事件处理并使用大量控件。几个月来,我一直在尝试解决与这些组合框相关的各种错误。我现在无法记忆起每个实例的所有详细信息,但这些错误往往涉及将 listfillrange 和 linkedcell 属性指向指定范围,并且通常与在不适当的时间触发组合框事件有关(例如当 application.enableevents 时) =假)。这些问题在 Excel 2007 中似乎变得更大,因此我不得不完全放弃这些组合框(我现在使用用户表单中包含的组合框,而不是直接在工作表上)。

还有其他人遇到过类似的问题吗?如果是这样,有一个优雅的解决方案吗?我已经通过 Google 进行了调查,到目前为止还没有发现任何人有类似的问题。

我最终看到的一些症状是:

  • 启动时 Excel 崩溃(涉及到combobox_onchange、listfillrange->另一个不同工作表上的命名范围以及workbook_open 交互)。 (注意,我还在链接的单元格上进行了一些数据验证,以防用户直接编辑它们。)
  • Excel 渲染错误(通常当组合框更改时,另一个工作表中的某些单元格会随机绘制在当前工作表的顶部)有时,它会导致屏幕完全闪烁到另一个工作表。
  • Excel 失去了理智(或者更确切地说,是调用堆栈)(与第一个要点相关)。有时,当函数修改组合框的属性时,会触发组合框 onchange 事件,但它永远不会将控制权返回给最初导致更改的函数。即使 application.enableevents = false 时,combobox_onchange 事件也会被触发。
  • 事件在不应该触发的时候触发(我在与此相关的堆栈溢出上发布了另一个问题)。

在这一点上,我相当确信 ActiveX 组合框是邪恶的化身,不值得这么麻烦。我已转而将这些组合框包含在用户表单模块中。我宁愿用弹出表单给用户带来不便,也不愿出现随机的视觉伪影和崩溃(数据丢失)。

最佳答案

我没有给您明确的答案,但我可以告诉您,大约 10 年前我就不再使用 ActiveX 控件的 ListFillRange 和 LinkedCell。我不记得我遇到过哪些具体问题。我只记得我得出的结论是,无论他们为我节省了多少时间,都不值得我费尽脑筋去追踪这些错误。所以现在我通过代码填充控件并处理事件中的输出。

关于excel - Excel 的 ActiveX 组合框中存在错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2330997/

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