啊哟是小青 2024-07-23 15:34 采纳率: 33.3%
浏览 2

Excel中如何能做到一级菜单多选的同时二级菜单还能与之对应呢

我做了一个EXCEL 想达到一级菜单可多选,二级菜单与之对应(即当一级菜单多选A.B后,二级菜单只能从A.B的二级菜单中选择)

img


根据数据验证的传统方法设置好了一级菜单

img


利用INDIRECT函数,设置好了二级菜单

img


为了实现一级菜单多选,使用了VBA代码

img


一级菜单确实可以多选了,但我发现一级菜单多选时,二级菜单并没有如我所料与一级菜单的多选内容所对应,反而无法选择。

这种问题应该怎么解决呢?

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2024-07-23 15:34
    关注

    以下内容由AIGC及阿里嘎多学长共同生成、有用望采纳:


    在Excel中实现一级菜单多选和二级菜单动态更新的功能,可以通过以下步骤来操作:

    1. 实现一级菜单的多选功能

    • 选择要设置为一级菜单的单元格。
    • 点击“数据”选项卡,然后选择“数据验证”。
    • 在“数据验证”对话框中,选择“设置”选项卡。
    • 在“允许”下拉菜单中选择“自定义”。
    • 在“公式”框中输入公式来允许多选,例如:=COUNTIF($A$1:A1, A1)<2(假设A列为一级菜单)。

    2. 设置二级菜单与一级菜单的对应关系

    • 选择要设置为二级菜单的单元格。
    • 同样使用“数据验证”功能。
    • 在“设置”选项卡中,选择“序列”。
    • 在“来源”框中,使用INDIRECT函数来引用一级菜单的选项。例如,如果一级菜单在A列,可以使用公式=INDIRECT("B" & MATCH(A2, 'Sheet1'!$A$1:$A$100, 0)),这里假设二级菜单的数据在工作表'Sheet1'的B列到B100范围内。

    3. 利用INDIRECT函数设置二级菜单

    • 继续使用上述步骤2中的INDIRECT函数,确保二级菜单的选项是根据一级菜单的选择动态更新的。

    4. 编写VBA代码实现一级菜单的多选

    • 打开VBA编辑器(快捷键Alt + F11)。
    • 插入一个模块(右键点击VBAProject,选择“插入” -> “模块”)。
    • 编写VBA代码来处理多选逻辑。以下是一个简单的示例代码:
    Function MultiSelectValidation(rng As Range, typeNum As Integer) As String
        Dim cell As Range
        Dim result As String
        result = ""
        For Each cell In rng
            If Not InStr(result, cell.Value & ",") > 0 Then
                result = result & cell.Value & ","
            End If
        Next cell
        ' 移除最后一个逗号
        result = Left(result, Len(result) - 1)
        MultiSelectValidation = result
    End Function
    
    • 然后,在工作表的“数据验证”对话框中,使用这个自定义函数。

    5. 解决多选时二级菜单不对应的问题

    • 确保VBA代码正确处理了多选情况,并且能够触发二级菜单的更新。
    • 检查INDIRECT函数是否正确引用了一级菜单的值,并且确保引用范围正确。

    注意事项

    • 确保VBA宏在Excel中已启用。
    • 根据实际的数据结构和需求调整VBA代码和公式。
    • 考虑到性能问题,对于大型数据集,多选验证和动态更新可能会比较慢。

    通过上述步骤,你应该能够实现Excel中一级菜单的多选功能,并确保二级菜单能够根据一级菜单的选择动态更新。如果遇到具体问题,可能需要进一步调试代码和公式。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月23日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?