Excel在属性窗口中设置ListFillRange属性-不是VBA发行

时间:2018-12-12 07:44:05

标签: excel

在ActiveX组合框的属性窗口中,我试图将一个命名范围放入“ ListFillRange”字段中。属性窗口允许我放入的仅有两件事是一个绝对范围:A2:A14或一个链接到绝对范围的命名范围(例如我在屏幕快照中以绿色标记的三个命名范围:

enter image description here

屏幕快照中的所有其他命名范围,当我将它们放入“ 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”字段中仍然具有命名范围!现在唯一的问题是,即使工作表上具有相同公式的单元格也不会显示该公式的结果。但这是一个不同的问题,我想我会为此提出一个新问题。

1 个答案:

答案 0 :(得分:0)

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

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

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