我正在尝试在VBA中执行循环功能,以选择数据验证中的每个项目(22项),并根据项目名称复制和粘贴新闻表。
我尝试使用Record Macro来查看选择不同数据验证项的语言,但没有注册。有没有办法在VBA中操作数据验证中的每个项目?
答案 0 :(得分:1)
有 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
。所以我丢弃 = 符号并制作一个范围。知道范围允许我抓住项目