gpt4 book ai didi

VBA:ComboBox 在 Workbook_Open 事件之后仅显示一项

转载 作者:行者123 更新时间:2023-12-04 20:32:57 24 4
gpt4 key购买 nike

我正在尝试拥有 Workbook_Open 事件填充控件组合框
这样当用户转到 Worksheet("Benchmarking") ,他们有一个预先填充的列表可供选择,其中包括数组 datesArr 中的所有项目.

我遇到的问题是,打开电子表格并导航到 Worksheet("Benchmarking") ,我只在下拉列表中看到一项:

Current situation with ComboBox1

如果我选择该项目,那么列表实际上会填充:

Full list appearing when selecting initial single item

期望的结果:

我希望从用户第一次尝试进行选择时就可以使用完整列表,而不仅仅是在 ComboBox1_Change 之后。事件被触发。

审查了许多帖子,例如Sometimes the ActiveX Combobox only shows one row, why? , Populating Combo Box on WorkBook Open我尝试了几种不同的方法,包括 Workbook_Open 中的以下方法事件代码:

.ListFillRange = "DropDownDates"  
.List = DateArrToStrAr

我还循环了将项目添加到 ComboBox1 的数组。每次我在下拉结果中得到相同的 1 个可见项目。

有人能告诉我我哪里出错了吗?

我目前的代码是

1) 本工作手册
Private Sub Workbook_Open()

With Worksheets("Benchmarking").OLEObjects("ComboBox1").Object
.Clear
.List = DateArrToStrArr '
End With

End Sub

2) 工作表(“基准测试”) :
Private Sub ComboBox1_Change() 'QH 2/11/17

Dim datesArr() As String
Dim ws As Worksheet

Set ws = ThisWorkbook.Worksheets("Lkup")

datesArr = DateArrToStrArr 'function that reads a named range of dates and converts to string to avoid dd/mm becoming mm/dd

If ComboBox1.Value = vbNullString Then ComboBox1.Value = "01/04/2016"

ComboBox1.List = datesArr

'.....other code

End Sub

笔记:

数组 datesArr由函数 DateArrToStrArr() 填充读取指定的日期范围 "DropDownDates" (工作簿范围)并将它们转换为字符串数组。然后将其分配给 ComboBox。
DropDownDates是一个动态命名范围,公式为 =OFFSET(Lkup!$F$16,,,Lkup!$M$12,)
设置:Excel 2016 64 位 Windows。

最佳答案

感谢@CLR 让我考虑重新计算。我决定用以下方法解决这个问题:

我已添加 Worksheet("Benchmarking")一个 Worksheet_Activate 事件并删除了 Workbook_Open 代码。这似乎可以解决问题

Private Sub Worksheet_Activate()
' ComboBox1.Clear
ComboBox1.List = DateArrToStrArr
End Sub

关于VBA:ComboBox 在 Workbook_Open 事件之后仅显示一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47176162/

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