vba - 有没有办法在 VBA 的数据验证中操作每个项目?

标签 vba excel

我正在尝试在 VBA 中执行一个循环函数来选择数据验证中的每个项目(22 个项目),并根据项目名称在新表上复制和粘贴。

我尝试记录宏以通过选择不同的数据验证项来查看语言,但没有任何注册。有没有办法在 VBA 的数据验证中操作每个项目?

最佳答案

2 DV的形式。一个使用单元格列表的方法,例如:

enter image description here

另一个使用内部逗号分隔列表,例如:

enter image description here

此代码将处理任何一种形式:

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/

相关文章:

arrays - 让数组接收自己的值

excel - 用 Cribbage 手数对

javascript - 使用 ExcelJS 编辑 Excel

excel - 请参阅 Excel Undolist 与语言无关

vba - 确定 VBA 中当前错误处理方法的语法

vba - 如何为总共 22 个文本框中的 20 个文本框制作一个代码,而不是重复 20 次

excel - VBA 宏 : Using variables with type modifier

excel - 当提示用户在 Excel 中使用输入框选择范围时,强制 VBA 显示当前选定的单元格

.net - 我需要安装 Office 才能使用 Microsoft.Office.Interop.Excel.dll

Stream.SaveToFile 上的 VBA 错误