相关疑难解决方法(0)

指向基于公式的命名范围的 Excel 组合框 listfillrange 属性存在问题

当它们的 ListFillRange 引用基于公式的命名范围(定义名称)时,Excel 中的 ActiveX 组合框对象表现不佳。

我想我遇到了其他错误,甚至可能因此导致 Excel 崩溃,但现在发生的只是在工作簿中的任何单元格发生更改时都会触发 combobox_change() 事件。

我不确定这是否真的是一个错误,或者是否有修复或解决方法。如果它是一个错误,我如何将其报告给 Excel 人员?

最后,我问题的真正重点是“我如何最好地解决这个问题?” 我想要一些基于公式的命名范围,但这似乎是不可能的。

要重现此错误,请执行以下操作:

  1. 创建一个新的工作簿。在 Sheet3 上,创建一个小表,宽 3 列,高几行。
  2. 使用以下公式(或等效公式)创建命名范围:=OFFSET(Sheet3!$A$2:$C$36,0,0,COUNTA(Sheet3!$A:$A),COUNTA(Sheet3!$4:$4))为此,请使用输入>名称>定义。将范围命名为“demoRange”
  3. 转到 Sheet1 并创建一个组合框,(它必须在单独的工作表上)。(使用控件工具箱菜单,而不是窗体菜单)。
  4. 单击“设计模式”按钮(带铅笔的蓝色三角形),然后右键单击组合框并转到“属性”。
  5. 在组合框的属性窗口中,更改 ListFillRange 属性,使其指向您在步骤 2 中创建的命名范围(“demoRange”)。
  6. 您可能希望将 ColumnCount 属性更改为 3,将 ColumnWidths 属性更改为“50,50,50”
  7. 通过在linkedCell 属性中键入A1,将linkedCell 属性设置为单元格“A1”。
  8. 关闭属性窗口,双击组合框来定义它的 change() 事件。
  9. 在新组合框的更改事件的子例程中放置 Debug.Assert(false) 或 Msgbox("demo") 行。
  10. 退出设计模式
  11. 重要- 现在在组合框中选择一个项目。事件应该在第一次正常触发。(如果您不执行此步骤,则不会显示该错误 - 必须在组合框中选择某些内容)
  12. 在任何工作表和任何位置编辑工作簿 [Edit] 或任何其他打开的工作簿 [/edit] 中任意位置的单元格。每次编辑任何单元格时(至少对我而言),组合框的 onchange 事件都会运行。

同样,这是否正常,我正在做的事情的最佳选择是什么?这个组合框链接到各种单元格,应该是默认情况下excel提供的数据验证下拉列表中小字体的替代品。

excel vba

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

excel ×1

vba ×1