gpt4 book ai didi

excel - 使用数组元素填充 VBA 中的组合框

转载 作者:行者123 更新时间:2023-12-02 14:48:22 25 4
gpt4 key购买 nike

我有一个 VBA 过程(在 Excel 2007 中),我希望使用数组设置样式为列表的组合框的 ListFillRange 属性。

如果我右键单击组合框并在“ListFillRange”属性旁边写入“Sheet1!$F2:$F17”,我知道这是有效的。我也可以在代码中做到这一点。但是,我有兴趣通过为其分配一个数组来动态设置此属性的值。

我确信该阵列在我测试时可以正常工作;这里可能有语法错误:

ThisWorkbook.Worksheets("Sheet1").OLEObjects("cmbS").ListFillRange = ar

当我这样做时,我得到:“类型不匹配”错误。

此操作的结果应该是用数组元素填充组件,从 element(0) ...到数组的最后一个元素 (n-1)。各位大佬指点一下,万分感谢!

我也尝试过:

ThisWorkbook.Worksheets("Sheet1").cmbS.list = ar

它说“权限被拒绝”

以下是组合框属性,以防有帮助: enter image description here

经过测试和尝试,我发现这是可行的:

ThisWorkbook.Worksheets("Sheet1").cmbS.ListFillRange = ""

Dim i As Integer
For i = LBound(ar) To UBound(ar)
ThisWorkbook.Worksheets("Sheet1").cmbS.AddItem (ar(i))

Next

但是,我有兴趣一次填充所有值以获得更快的效果,不仅仅是逐个元素添加

最佳答案

我知道已经晚了,但也许对其他人有帮助。至少下面的代码对我来说是有效的(比元素对元素快得多)。

dim arr() as variant

arr = Worksheets("Total").Range("C2:"&lrow).Value
Worksheets("Menu").ComboBox2.List = arr

关于excel - 使用数组元素填充 VBA 中的组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15414619/

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