当前位置: 首页 > 知识库问答 >
问题:

Excel VBA for Mac: ComboBox 解决方法

柯乐童
2023-03-14

我无法在 Mac 上的用户窗体上填充我的组合框。

我创建了一个名为“nameList”的html" target="_blank">动态命名范围,其公式如下所示:

"=OFFSET('MEMBERS LIST'!$D$4,0,0,COUNTA('MEMBERS LIST'!$D:$D)-1)"

在Sheet1(命名:HOME)上,我创建了一个调用UserForm(命名:PostForm)的宏,在那里我创建了一个ComboBox(命名:username_Insert)。在Windows上,我只需要转到“属性”框

我在代码中尝试了多种解决方案:

Private Sub PostForm_Initialize()
    'Populate Username combo box.
    'Me.username_Insert.List = [nameList]
    'Me.username_Insert.List = Range("nameList")
    'Me.username_Insert.List = Range([nameList])

    'Me.username_Insert.AddItem = [nameList]
End Sub

我不确定我是否在正确的子中输入代码,或者我是否应该在以下子中输入我的代码:私有子 username_Insert_Change()

/******已解决*******/

修改了代码以接收我拥有的其他动态列表,产生了以下代码。实现到用户表单代码中,工作起来很有魅力:

Private Sub UserForm_Activate()
    Dim nme As Range
    Dim ws As Worksheet

    Set ws = Sheets("Members List")
    For Each nme In ws.Range("nameList")
        Me.username_Insert.AddItem nme.Value
    Next nme

    Set ws = Sheets("SONY DATA")
    For Each nme In ws.Range("phoneList")
        Me.phone_Insert.AddItem nme.Value
    Next nme

    For Each nme In ws.Range("ampm")
        Me.daynight_Insert.AddItem nme.Value
    Next nme

    For Each nme In ws.Range("typeList")
        Me.type_Insert.AddItem nme.Value
    Next nme

End Sub

共有2个答案

姚海
2023-03-14

逐行添加项目是有效的,但可以通过简单地在一行代码中使用所有值填充 Combobox 的 LIST 属性来更直接(和优雅地)完成,如下所示:

Private Sub Userform_Activate()
    username_Insert.List = Sheets("Members List").Range("nameList").value
End sub

你在最初的尝试中已经非常接近了,你只需要增加。对的价值

=Range("名称列表")

行:-)

沈冠宇
2023-03-14

看起来您必须逐项填充组合框。鉴于它是一个动态列表,我建议您将代码放在用户窗体的激活事件中。请注意,此事件是在用户窗体的代码模块中找到的(并且应放置代码),而不是在常规代码模块中找到的。

Private Sub UserForm_Activate()
Dim nme As Range
Dim ws As Worksheet

Set ws = Sheets("Members List")
    For Each nme In ws.Range("nameList")
        Me.username_Insert.AddItem nme.Value
    Next nme

End Sub
 类似资料:
  • 1px 方案在 VUX 组件内应用广泛,包括 Grid, ButtonTab, XTable, XButton, Cell 等等。 利用 Flexbox + 1px 你可以实现复杂的宫格布局。 引入 在你项目的App.vue引入,组件内不需要再重复引入。 <style lang="less"> @import '~vux/src/styles/1px.less'; </style> 可用类名:

  • 本文向大家介绍vue跨域解决方法,包括了vue跨域解决方法的使用技巧和注意事项,需要的朋友参考一下 vue项目中,前端与后台进行数据请求或者提交的时候,如果后台没有设置跨域,前端本地调试代码的时候就会报“No 'Access-Control-Allow-Origin' header is present on the requested resource.” 这种跨域错误。 要想本地正常的调试,解

  • 本文向大家介绍python3的UnicodeDecodeError解决方法,包括了python3的UnicodeDecodeError解决方法的使用技巧和注意事项,需要的朋友参考一下 爬虫部分解码异常 以下是设计的通用解码 通过 text 获取编码 通过数据 来解编码(推荐) errors=‘replace' 使解码不报异常, 然后把几个常用的编码一个个试下, 最后要看落下来的数据, 所以最好拿数

  • 问题内容: 我正在将JTOpen JDBC驱动程序用于DB2通用数据库。除了简单的语句,我对SQL的经验很少。 从这个问题中,我看到尝试“在事务期间插入/更新非日记表中的行”时,抛出了我正在获取的错误(SQL7008)。 根据项目负责人的说法,我们的数据库未记录在日志中,因此不会很快出现(不要问我为什么,我不是DBA)。但是,我正在一个项目中,几乎一劳永逸(而不是每次调用一次执行都会自动提交)的功

  • 在维基百科中,背包的算法如下: 我在网上找到的所有例子的结构都是一样的<我无法理解的是,这段代码是如何考虑到最大值可能来自较小的背包这一事实的?E、 如果背包容量为8,那么最大值可能来自容量7(8-1)<我找不到任何逻辑来考虑最大值可能来自较小的背包。这是错误的想法吗?

  • 本文向大家介绍详解Django CAS 解决方案,包括了详解Django CAS 解决方案的使用技巧和注意事项,需要的朋友参考一下 CAS单点登录主要是为了解决主系统和子系统的统一登录问题,能够做到任意一个子系统登录成功后,再登录其他子系统后不再需要认证,让用户不用重复地进行登录认证。CAS单点登录的方案很多,并且大多数都是采用session的方式,而本文结合个人实践,着重讨论django cas

  • 你可以看到,虽然我们有一些复制对象的方法,但是我们没有使它不可变,因为我们可以将episode的属性设置为8.另外,在这种情况下我们如何修改episode属性? 我们通过调用assign: name: 'Star Wars', console.log(movie1.episode); // writes 7