【问题标题】:Excel Setting ListFillRange Property in Property Window - not VBA ISSUEExcel 在属性窗口中设置 ListFillRange 属性 - 不是 VBA ISSUE
【发布时间】:2019-05-13 06:37:42
【问题描述】:

在 ActiveX 组合框的属性窗口中,我试图将命名范围放入“ListFillRange”字段。属性窗口允许我放在那里的唯一两件事是绝对范围:A2:A14 或链接到绝对范围的命名范围(就像我在屏幕截图中用绿色标记的三个命名范围:

屏幕截图中的所有其他命名范围,当我将它们放入“ListFillRange”字段并单击“ENTER”时,该字段会自行删除并且不会接受。

我需要的范围在上面的屏幕截图(“rng_HelperNameList_clients”)中以黄色标记,链接到以下公式:

=CLIENTS!$J$2:INDEX(tbl_clients[@Searchable],COUNTIF(tbl_clients[@Searchable],"?*"))

我也尝试在 VBA 中这样做:

Private Sub CmboBox_SearchClient_main_Change()
CmboBox_SearchClient_main.ListFillRange = "=rng_HelperNameList_clients"
CmboBox_SearchClient_main.DropDown
End Sub

虽然我没有收到错误,但 ComboBox 并没有填充公式应该提供的相关数据。我知道该公式有效,因为该公式适用于工作表上的单元格。

如何将链接到公式的命名范围直接放入 ComboBox 属性窗口中的“ListFillRange”字段或让 VBA 工作?


更新:

我想出了如何欺骗 ComboBox 属性。我将命名范围更改为链接到随机绝对范围 ($A$1:$A$14),然后允许我将命名范围放入“ListFillRange”字段。然后我转到命名范围并将链接更改为我的公式,属性窗口仍然在“ListFillRange”字段中有命名范围!现在唯一的问题是组合框没有显示公式的结果,即使工作表上具有相同公式的单元格是。但这是一个不同的问题,我想我会为此创建一个新问题。

【问题讨论】:

    标签: excel


    【解决方案1】:

    请参阅我的问题中的更新以解决此问题。 我也让组合框工作。问题是它不是包含数据的表的一部分,并且需要获取一些“带有数据的最后一行”代码,例如 INDEX、LOOKUP、ROW 等。我使用 INDIRECT 来获取最后一行数据。

    这是我命名范围的最后一个字符串,即 ListFilledRange:

    =CLIENTS!$L$2:INDEX((INDIRECT("CLIENTS!$L$2"&COUNTA($L:$L))),COUNTIF(INDIRECT("CLIENTS!$L$2"&COUNTA($L:$L)),"?*"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      • 2018-06-04
      相关资源
      最近更新 更多