ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 186|回复: 4

[求助] 求大师改一下三级下拉菜单代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-11-11 13:22 | 显示全部楼层 |阅读模式
Private Sub Worksheet_Change(ByVal Target As Range)
    m = Target.Row
     Range("e" & m).Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=类型"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .IMEMode = xlIMEModeNoControl
        .ShowInput = True
        .ShowError = True
    End With
        Range("F" & m).Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=indirect(e12)"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .IMEMode = xlIMEModeNoControl
        .ShowInput = True
        .ShowError = True
    End With
      Range("g" & m).Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=indirect(f12)"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .IMEMode = xlIMEModeNoControl
        .ShowInput = True
        .ShowError = True
    End With
End Sub
这是录制宏得到的代码,想把"=indirect(e12)", Formula1:="=indirect(f12)"中的e12  和 f12改成变量,但是改成indirect(“f”&m)就报错,求大师帮忙改一下。谢谢了


三级下拉菜单.rar

24.25 KB, 下载次数: 15

TA的精华主题

TA的得分主题

发表于 2024-11-11 17:36 | 显示全部楼层
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     Dim m As Long
  3.     m = Target.Row

  4.     ' 对 E 列的下拉列表进行验证设置
  5.     With Cells(m, 5).Validation
  6.         .Delete
  7.         .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
  8.         xlBetween, Formula1:="=类型"
  9.         .IgnoreBlank = True
  10.         .InCellDropdown = True
  11.         .InputTitle = ""
  12.         .ErrorTitle = ""
  13.         .InputMessage = ""
  14.         .ErrorMessage = ""
  15.         .IMEMode = xlIMEModeNoControl
  16.         .ShowInput = True
  17.         .ShowError = True
  18.     End With

  19.     ' 对 F 列的下拉列表进行验证设置
  20.     With Cells(m, 6).Validation
  21.         .Delete
  22.         .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
  23.         xlBetween, Formula1:="=INDIRECT(E" & m & ")"
  24.         .IgnoreBlank = True
  25.         .InCellDropdown = True
  26.         .InputTitle = ""
  27.         .ErrorTitle = ""
  28.         .InputMessage = ""
  29.         .ErrorMessage = ""
  30.         .IMEMode = xlIMEModeNoControl
  31.         .ShowInput = True
  32.         .ShowError = True
  33.     End With

  34.     ' 对 G 列的下拉列表进行验证设置
  35.     With Cells(m, 7).Validation
  36.         .Delete
  37.         .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
  38.         xlBetween, Formula1:="=INDIRECT(F" & m & ")"
  39.         .IgnoreBlank = True
  40.         .InCellDropdown = True
  41.         .InputTitle = ""
  42.         .ErrorTitle = ""
  43.         .InputMessage = ""
  44.         .ErrorMessage = ""
  45.         .IMEMode = xlIMEModeNoControl
  46.         .ShowInput = True
  47.         .ShowError = True
  48.     End With
  49. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-12 08:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

谢谢,正是想要的结果。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-12 09:30 | 显示全部楼层

您好,在公司电脑上可以用,但是在我的电脑上就显示出错。这个是什么问题呀?
出错1.png
出错2.png

TA的精华主题

TA的得分主题

发表于 2024-11-12 14:38 | 显示全部楼层
1565785678 发表于 2024-11-12 09:30
您好,在公司电脑上可以用,但是在我的电脑上就显示出错。这个是什么问题呀?

Excel版本不同?还是命名管理器定义了相同命名的名称?没见过
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-4 01:06 , Processed in 0.041271 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表