我正在尝试在 VBA 中执行一个循环函数来选择数据验证中的每个项目(22 个项目),并根据项目名称在新表上复制和粘贴。
我尝试记录宏以通过选择不同的数据验证项来查看语言,但没有任何注册。有没有办法在 VBA 的数据验证中操作每个项目?
最佳答案
有 2 DV的形式。一个使用单元格列表的方法,例如:
另一个使用内部逗号分隔列表,例如:
此代码将处理任何一种形式:
Sub IsDV()
Dim s As String, r As Range, rng As Range
s = "NO DV"
On Error Resume Next
With ActiveCell
s = .Validation.Formula1
On Error GoTo 0
End With
If s = "NO DV" Then
MsgBox s
Exit Sub
End If
If Left(s, 1) = "=" Then
Set rng = Range(Mid(s, 2))
For Each r In rng
MsgBox r.Value
Next r
Exit Sub
End If
ary = Split(s, ",")
For Each a In ary
MsgBox a
Next a
End Sub
编辑#1:
如图所示,
Formula1
创建一个字符串。如果该字符串以 开头= 符号,则字符串的其余部分是 Address
.所以我放弃了 = 签署并制定一个范围。知道范围可以让我捕获元素
关于vba - 有没有办法在 VBA 的数据验证中操作每个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36044781/