excel - 表单控件下拉框出现问题

标签 excel vba combobox dropdown

我在创建依赖下拉框时遇到了一些麻烦,其中根据第一个下拉列表的值,返回一个列表或返回一个值:
我的第一个下拉菜单(“Drop Down 6”)由两个选项(命名范围)组成

LU Classification:
        CFR
        DCR 
我的第二个下拉菜单(“Drop Down 11”)的代码如下:
'Declare variables
Dim wb As Workbook
Dim ws As Worksheet
Dim c_list As Worksheet

'Assign variables
Set wb = ThisWorkbook
Set ws = ActiveSheet
Set c_list = wb.Worksheets("C_List")
      
'DropDown level 1
Dim dd As DropDown
Set dd = ws.Shapes("Drop Down 6").OLEFormat.Object

'DropDown level 2
Dim dd2 As DropDown
Set dd2 = ws.Shapes("Drop Down 11").OLEFormat.Object

'DropDown level 2 values
With dd2
    If dd.Value = 1 Then
        dd2.ListFillRange = "LU_BBP"
    Else
        dd2.ListFillRange = "Packer"
    End If
End With

End Sub
当我在第一个下拉菜单中选择 CFR 时,我的 if 语句似乎不起作用,应该返回一个列表。
有什么想法吗?
编辑:如果我在 VBA 编辑器中逐行运行,下拉列表会更新,但是,当简单地使用下拉列表时,更改不会继续。

最佳答案

您需要稍微不同地执行此操作。
将此代码粘贴到模块中

Option Explicit

Sub DropDown6_Change()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    
    Dim dd As DropDown
    Set dd = ws.Shapes("Drop Down 6").OLEFormat.Object

    Dim dd2 As DropDown
    Set dd2 = ws.Shapes("Drop Down 11").OLEFormat.Object
    
    If dd.Value = 1 Then
        dd2.ListFillRange = "LU_BBP"
    Else
        dd2.ListFillRange = "Packer"
    End If
End Sub
现在右击Drop Down 6并单击分配宏。分配 DropDown6_Change到这个下拉菜单,你就完成了:)
在行动(演示)
enter image description here

关于excel - 表单控件下拉框出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64763100/

相关文章:

ms-access - 带有 "With"语句的 VBA 错误处理程序

c# - 在 ASP.NET 中保存 Excel 文档

excel - 设置导出的 Excel 文件的列宽

vba - 循环直到网页元素不为空的逻辑

c++ - 如何创建 Qt 组合框

python - 有没有办法调整组合框条目的大小?

C# WPF Mysql 组合框重复值

python - 如何使用 Python 编辑 .xlsx 文件的核心属性?

VBA 'For Each' 所选项目

ms-access - 运行时错误6溢出