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

2024-04-23

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

我认为我遇到了其他错误,甚至可能因此导致 Excel 崩溃,但现在发生的只是只要工作簿中的任何单元格发生更改,就会触发组合框_change() 事件。

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

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

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

  1. 创建一个新工作簿。在 Sheet3 上,创建一个 3 列宽、几行高的小表格。
  2. 使用以下公式(或等效公式)创建命名范围:=OFFSET(Sheet3!$A$2:$C$36,0,0,COUNTA(Sheet3!$A:$A),COUNTA(Sheet3!$4:$4))为此,请使用“输入”>“名称”>“定义”。将范围命名为“demoRange”
  3. 转到 Sheet1 并创建一个组合框,(它必须在单独的表格上)。 (使用控制工具箱菜单,not表单菜单)。
  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] 中的任何工作表和任何位置编辑单元格。每次编辑任何单元格时(至少对我来说),组合框的 onchange 事件都会运行。

再说一遍,这是正常的吗?对于我正在做的事情来说,最好的选择是什么?该组合框链接到各种单元格,并且应该替代 excel 默认提供的数据验证下拉列表中的小字体。


我的建议是永远不要使用 ListFillRange 和 LinkedCell。他们只是麻烦。用 List 填充列表框并使用 Change 事件写入单元格。在某个地方,也许是 Workbook_Open 事件,填充列表框

Private Sub Workbook_Open()

    Sheet2.ListBox1.Clear
    Sheet2.ListBox1.List = Sheet1.Range("demoRange").Value

End Sub

然后在 Sheet2 模块的更改事件中,检查是否单击了某些内容并将其写入单元格

Private Sub ListBox1_Change()

    If Me.ListBox1.ListIndex >= 0 Then
        Sheet2.Range("A1").Value = Me.ListBox1.Value
    End If

End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Excel 组合框 listfillrange 属性指向基于公式的命名范围有问题 的相关文章

  • 运行时错误:范围自动筛选上的“1004”

    我想用 VBA 做什么 使用数组过滤表并删除行 我的数组有 4 个元素 在循环中更改为有 5 个不同的集合 正在过滤的列有 5 个元素 我只想得到 1 这是一个循环 它将创建 5 个报告 每个报告根据第 29 列过滤不同的元素 如果在调试模
  • 如何填充上次保存的用户和文件的上次保存日期

    我有下面的代码从文件夹中获取文件名 Sub GetFileNames Assessed As T2 Dim sPath As String sFile As String Dim iRow As Long iCol As Long Dim
  • 将图表导出为图像 - 只需单击按钮

    我正在尝试创建一个按钮 将 图表 工作表中的图表导出为 jpeg 文件 这是我的代码 但它不断显示此错误 运行时错误 424 需要对象 具体来说 Set myChart Graphs ChartObjects 3 Name Chart4 这
  • VBA Office2010 Shapes.PasteSpecial 失败

    我在将 VBA 代码从 Office2003 迁移到 Office2010 时遇到问题 我想将单元格 Excel 的文本复制到Powerpoint Office2003生成了一个新的文本框 文本样式与Excel中相同 现在我的代码在 Off
  • 在 Word 2010 中复制形状而不使用 .Select?

    是否可以在 Word 2010 中复制形状而无需借助 Select 根据开发中心 http msdn microsoft com en us library office ff835500 aspx the Anchor属性返回形状的锚定范
  • 按日期计算 Outlook 中的电子邮件

    我有以下代码来计算 Outlook 文件夹中的电子邮件数量 Sub HowManyEmails Dim objOutlook As Object objnSpace As Object objFolder As Object Dim Ema
  • Excel VBA 最终用户选择图表对象

    我想生成一些代码 允许最终用户从工作表中选择多个图表之一 之后我将根据该选择进行一系列操作 我正在寻找类似于 Application Inputbox Type 8 的东西 它允许对象选择而不是范围选择 我对不起眼的老VBA要求太多了吗 首
  • 有没有办法设置一个变量一次并在多个地方使用它而不给它模块级别的范围?

    我有一个循环将用户窗体控件添加到集合中 由于多个地方都需要该集合 因此我将其放入模块中并在需要时调用它 这意味着该集合仅在需要时才位于内存中 但这也意味着我每次想要使用它时都会运行一个循环 I could已给出集合模块级别范围并在第一次需要
  • excel中的多轴折线图

    我正在寻找类似于下图中的多轴折线图 这是由 amcharts 制作的 JavaScript 图表 excel有没有可以绘制图表的选项 请注意 有 3 个 Y 轴和 3 个折线图 可让您比较数据 是否有可能获得超过 3 个数据点 每个数据点在
  • 为什么 Excel 有时会在工作表名称中添加 $?

    我有时但并非总是发现 Excel 会放置一个 位于工作表名称末尾 但在 Excel 中看不到 只有在尝试使用 C 将其导入 SQL Server 时才可见 我遇到过很多不同的情况 它保留了原始工作表 但也创建了第二个空的 隐藏 工作表 其中
  • 在 VBA 循环中导出查询以根据字符串值选择数据

    我有一个名为 TEST 的表 下面的代码根据 Territory 列中的唯一值循环导出查询 该代码应该根据 Territory 列中的唯一值将数据导出到 Excel 文件 因此每个 Territory 值都有它自己的文件 我在设置 sql
  • 双击事件 - 多个范围

    我正在寻找为双击事件在多个范围内进行编码的最佳方法 Private Sub Worksheet BeforeDoubleClick ByVal Target As Range Cancel As Boolean If Not Interse
  • Mono for Android,读取和写入 XLSX

    我正在使用 Mono for Android 开发一个应用程序 我需要读取和创建 XLSX Excel 文件的功能 我尝试过EPPlus和NPOI 并快速浏览了一下微软的Open XML SDK 发现了以下问题 EPPlus 需要 Wind
  • 使用 Apache POI 和 Java 创建 Excel (.xlsx) 文件后文件损坏

    我已经使用 Apache POI API 使用 Java 成功创建了 xlsx 格式的工作簿 Excel 我的代码如下 在 D 盘创建一个名为 RiponAlWasim xlsx 的文件 Workbook wb new XSSFWorkbo
  • 如何用xlrd读取公式

    我正在尝试做一个解析器 它读取几个 Excel 文件 我通常需要位于行底部的值 您可以在其中找到所有上部元素的总和 因此 单元格值实际上是 sum 或 A5 0 5 可以说 对于使用 Excel 打开此文件的用户来说 它看起来像一个数字 这
  • 自定义函数错误:“表达式不能在计算列中使用”

    在 Access 2010 中 我尝试在计算列中使用自定义 VBA 函数 我得到 表达式不能在计算列中使用 这是我的步骤 启动 Access 2010 创建一个新的数据库 DB 创建一个包含文本列 Column1 的表 Table1 在 C
  • VBA rand 如何使用上限和下限生成随机数?

    所以也许这是多余的 也许这就像问为什么大多数人生来就有 5 个手指 最后的简短答案总是 因为事情就是这样 而且它就是这样工作的 但我讨厌这个答案 该死的我想知道怎么做VBA 中的 Rnd 函数有效 Ms Office Excel 的 MSD
  • VBA 代码中的 Excel 公式

    所以 在 Sheet1 中 我有一些名称的基础 它看起来像这样 在 Sheet2 中 我正在使用 Sheet1 中的这些名称 我这样做的方式是在 A 列中输入代码值 在 B 列中输入名称 在 C 列中输入姓氏 看起来像这样 我已经用公式完成
  • Excel - 根据选择创建图表的宏

    我想就以下问题寻求您的帮助 因为我必须创建大量图表 所以我想要一个宏来根据我的选择插入图表 由于我对 VBA 没有任何了解 但现在需要它 至少现在 我真的应该自己学习使用它 我将感谢您的帮助 基本上 我需要知道如何调整我记录的代码 以便根据
  • 列表框:添加组合框作为项目?

    是否可以将列表框的每个项目都作为组合框 我需要这个 因为我将列表框设置为可检查 然后我需要让用户从列表中每个元素的不同选项中进行选择 Thanks 如果您不打算分发您的应用程序 那么您还可以查看 TreeView 控件 请参阅此示例 COD

随机推荐