修法布施得聪明智慧 , 多分享让生活更美好 。 上次分享了《Excel筛选后怎样快速用颜色分隔数字区间标示》 , 介绍了Excel筛选后快速用颜色分隔数字区间标示处理方法 , 使用筛选菜单 , 有无办法处理数据象筛选一样三级菜单联动呢?通过下面实例分享处理方法 。 1Excel筛选后如何快速用颜色分隔数字区间标示
文章插图
需要这些哦
Microsoft Office Excel 2007
Excel VBA
处置方式/
1起首打开Microsoft Office Excel 2007 , 新建文档并保留文件名《Excel如何建立一、二、三级联动下拉菜单 .xlsm》(演示文件 , 下面代码复制到能运行宏的工作簿都可以)如图 。
文章插图
2在“Sheet2”表建立数据如下 。
文章插图
3鼠标移到当前工作表标签栏“Sheet1”表(需要在哪表计较在哪表) , 右键 , 弹出快捷菜单 , 如下图 。
文章插图
4在快捷菜单找到【查看代码】并单击 , 打开VBE(宏)编纂界面 , 如下图 。
文章插图
5在右边代码框中复制下面代码到该框中 , 如下图:
Private Sub Worksheet_Change(ByVal Target As Range)
'2020-10-8 22:38:36
If Target.Column = 1 Then
Target(1).Offset(0, 1).Resize(1, 2).ClearContents
If
If Target.Column = 2 Then
Target(1).Offset(0, 1).ClearContents
If
Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'2020-10-8 22:45:12
Dim i As Integer, mb(), m As String, d As Object, c As Long
If Target.Column > 3 Then Exit Sub
On Error Resume Next
Set d = CreateObject("Scripting.Dictionary")
With d
mb = Worksheets("Sheet2").Range("A2").Resize(Worksheets("Sheet2").UsedRange.Rows.Count - 1, 3).Value
c = Target.Column
If c = 1 Then
For i = 1 To UBound(mb, 1)
.Add CStr(mb(i, 1)), ""
Next
m = Join(.keys, ",")
With Target(1).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=m
With
ElseIf c = 2 Then
For i = 1 To UBound(mb, 1)
If Target(1).Offset(0, -1) = mb(i, 1) Then
.Add CStr(mb(i, 2)), ""
If
Next
m = Join(.keys, ",")
With Target(1).Validation
.Delete
推荐阅读
- Creo7.0布线修饰特征之线扣的创建方法
- 如何将Excel文档中文字颜色变成深色50%的紫色
- 四川怎样查询高考录取情况
- excel如何列出倒数三名
- 如何将Excel文档中文字颜色变成淡色40%的紫色
- 原神怎样获得笛剑
- 原神怎样获得流浪乐章
- 原神怎样获得西风秘典
- 原神怎样进行烹饪
- 香肠派对怎样进行实名认证