我需要你的帮助来编写一个宏,用于在下一列中显示唯一值(对于假设B列),它应该是列表格式,基于从数据验证列表中选择的值(对于假设,这是在A栏中。
我希望通过提供我用于此宏的数据来更具体,因为我仍然是编写这些宏的初学者,我将非常感谢您的帮助。
流程定义
流程规划
新流程计划
修订现有流程
从利益相关方收到的QMS反馈
分析收到的反馈
流程审核
流程推广活动
流程试点
流程整合研讨会
新流程培训
流程实施
促进支持职能
审核管理
审核计划
执行。协调和进行审核
审计报告准备和支持
纠正措施和预防措施 - 后续行动
审核状态更新
审计分析
审核结束
度量
指标整理促进
项目和支持的度量标准收集
项目和支持的度量标准分析
管理评论
MRM调度
MRM演示准备
预MRM
协调和进行管理评审
行动项目后续行动
流程培训
迎新训练
内部审计员培训
流程培训
所以我想在B栏中创建一个数据验证列表:B4:B25'上面以粗体显示的所有标题和C列中的另一个数据验证列表:C4:C5'每个标题下面的所有相应数据。如果我选择"流程定义"来自' B4' DV列表,然后我想要标题1下面的数据,即"流程规划,新流程计划.....等等#34;显示在' C4'中的数据验证列表中。
提前致谢。欢呼声。
答案 0 :(得分:0)
考虑到A列中已有一个下拉列表,其值为“a”& “b”,在VBA中使用 Workbook_SheetChange 事件,根据A列中的值select填充B列中的值:
e.g。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column = 1 Then 'To run only when the value is changed in column A
Cells(Target.Row, 2).Select
Cells(Target.Row, 2).Value = "" 'Initializes value of dependent dropdown to blank
If Target.Value = "a" Then
'Add 1,2,3,4 to dependent dropdown if value of Column A is "a"
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="1,2,3,4" 'Change 1,2,3,4 to values that you need for a
.IgnoreBlank = False
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
ElseIf Target.Value = "b" Then
'Add 1,2,3,4 to dependent dropdown if value of Column A is "b"
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="5,6,7,8" 'Change 5,6,7,8 to values that you need for b
.IgnoreBlank = False
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
Else
Exit Sub
End If
End If
End Sub
编辑:
您所需要的只是将目标值(Target.Value
)和我的代码中给出的Formula1
中的值更改为您需要的值。这样的事情可以帮到你:
If Target.Value = "Process Definition" Then
'Create dependent dropdown when value of Column A is "Process Definition"
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="Process Planning,New process initiatives,Amendment of existing process, and so on.."
.IgnoreBlank = False
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
ElseIf Target.Value = "Process Implementation" Then
'Create dependent dropdown when value of Column A is "Process Implementation"
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="Facilitation to support functions"
.IgnoreBlank = False
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
ElseIf Target.Value = "Audit Management" Then
'Create dependent dropdown when value of Column A is "Audit Management"
With Selection.Validation
<similar code as above>
End With
ElseIf...and so on..
Else
Exit Sub
End If
您可以使用Excel的“数据”选项卡中的“数据验证”选项或使用其他VBA代码创建第一个下拉列表(流程定义,流程实施,审计管理等)(两者的文档都可以在Internet上轻松获得)。您也可以参考Axel Richter的链接。