Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 9352|回复: 7

如何用VBA做二级下拉菜单

[复制链接]
发表于 2012-11-18 15:19 | 显示全部楼层 |阅读模式
如何用VBA做二级下拉菜单 凭证打印.rar (6.54 KB, 下载次数: 126)
发表于 2012-11-18 15:25 | 显示全部楼层
这个就是动态的数据有效性。
用函数也能实现。
回复

使用道具 举报

 楼主| 发表于 2012-11-18 15:32 | 显示全部楼层
hwc2ycy 发表于 2012-11-18 15:25
这个就是动态的数据有效性。
用函数也能实现。

怎么做,谢谢谢谢
回复

使用道具 举报

发表于 2012-11-18 16:03 | 显示全部楼层
论坛搜一下,这类的例子很多,4级下拉的样表都有
回复

使用道具 举报

发表于 2012-11-18 16:40 | 显示全部楼层
给你一个例子自己参考吧.
会计科目.rar (17.13 KB, 下载次数: 243)
回复

使用道具 举报

发表于 2014-11-4 11:04 | 显示全部楼层
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.     If Target.Row = 1 Then Exit Sub
  3.     If Target.Count > 1 Then Exit Sub
  4.     arr = Sheet1.[a1].CurrentRegion         '科目表
  5.     If Target.Column = 1 Then           '第一列有效性
  6.         For i = 2 To UBound(arr)
  7.             If Len(arr(i, 1)) > 0 Then xstr = xstr & "," & arr(i, 1)
  8.         Next
  9.     ElseIf Target.Column = 2 Then     '第二列有效性
  10.         For i = 2 To UBound(arr)      '找到一级科目所在的行
  11.             If arr(i, 1) = Target.Offset(0, -1) Then Exit For
  12.         Next
  13.         If i <= UBound(arr) Then        '表示找到行
  14.             For j = 2 To UBound(arr, 2)
  15.                 If Len(arr(i, j)) > 0 Then xstr = xstr & "," & arr(i, j)
  16.             Next
  17.         End If
  18.     End If
  19.     If Len(xstr) > 0 Then       '生成有效性
  20.         With Target.Validation
  21.             .Delete
  22.             .Add xlValidateList, Formula1:=Mid(xstr, 2)
  23.         End With
  24.     End If
  25. End Sub
复制代码
回复

使用道具 举报

发表于 2014-11-4 11:08 | 显示全部楼层
请看附件。

凭证打印.rar

11.05 KB, 下载次数: 412

回复

使用道具 举报

匿名  发表于 2019-6-17 19:34

在窗体里面怎么实现啊,这个是要怎么调整呢,ComboBox2根据ComboBox1的选择的内容提供对应数据的下拉菜单。数据源也是跟楼主一样是横向排列的
回复

使用道具

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-29 04:43 , Processed in 0.322294 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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