excel - 表单控件下拉框出现问题
问题描述
我在创建依赖下拉框时遇到了一些麻烦,其中根据第一个下拉列表的值,返回一个列表或返回一个值:
我的第一个下拉菜单(“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
给这个下拉菜单,你就完成了:)
在行动(演示)
推荐阅读
- testing - 带有gorm INSERT的sqlmock
- windows-10 - 在 LaTeX 构建上覆盖旧 PDF (Sublime 3)
- java - 调用方法时的异常处理
- swift - Swift - 使用枚举映射 UISegmentedControl
- c# - 为 Kentico 对象生成类
- javascript - .eslintrc.js 键带有“-”(破折号)
- amazon-ec2 - GPU 利用率如何在神经网络训练的背景下发挥作用?
- android - 带有 createChooser 的 startActivity 不显示选择器但立即启动
- sql - Rails has_many through - 如何为连接表指定键列?
- sql-order-by - Drupal 8 SQL语句,避免addOrder通过在SELECT中添加一些字段