作者:绿色风
分类:
时间:2022-08-17
浏览:146
楼主 omnw |
Q:如何用VBA设置动态数据有效性? A:使用VBA可以根据已经存在的数据列表,创建动态的数据有效性,提高操作的简便性和录入的效率。代码如下:
- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
- Dim i As Integer
- Dim str As String
- str = [A1]
- For i = 2 To [A65536].End(xlUp).Row
- If Application.WorksheetFunction.CountIf(Range("A1:A" & i - 1), Cells(i, 1)) = 0 Then
- str = str & "," & Cells(i, 1)
- End If
- Next
- If Target.Count = 1 Then
- If Target.Column = 3 Then
- With Target.Validation
- .Delete
- .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=str
- End With
- End If
- End If
- End Sub
注:A列存在已知的数据列表(有重复内容),在C列创建动态数据列表。这样如果A列的数据发生了变化,C列的数据有效性列表就会随之变化。 动态数据有效性.rar |
2楼 jxwfz740724 |
学习学习,呵呵 |
3楼 小伟精品 |
不是我想要的,不过谢谢了! |
4楼 capricorn |
AlertStyle:=xlValidAlertStop和 Operator:=xlBetween是否可以省略呢?我看帮助上说可以省略,但给的例子中又没有省略,不明白省略好还是不省略好。 |
5楼 qinhuan66 |
好好学习天天向上 |
6楼 icenotcool |
|
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一