Excel VBA:带索引匹配的动态数据验证输入消息

时间:2017-08-14 22:23:57

标签: excel vba excel-vba

使用数据验证输入消息,对于命名范围中的每个单元格(" MyRange"),我希望与Table1 [Column1]匹配,并使用Table1 [Column2]中的值进行索引

我需要循环,因为它没有,活动单元保持不变,整个范围具有相同的输入消息。我没有承诺使用公式INDEX MATCH,它只需要执行该功能。

Sub Tester()
    Dim mycell As String
    mycell = ActiveCell
        With Range("MyRange").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation, _
        Operator:=xlBetween, Formula1:="=INDIRECT(Test1&Test2)"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = Application.WorksheetFunction.Index(Range("Table1[Column2]"), _
        Application.WorksheetFunction.Match(mycell, Range("Table1[Column1]"), 0))
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = False
    End With
End Sub

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

围绕您现有的代码包装。基本上,您希望将代码粘贴到读取Debug.Print的行中。 。 。进行一些非常小的修改。

Sub LoopRange()

    Dim rCell As Range
    Dim rRng As Range

    Set rRng = Sheet1.Range("A1:A6")

    For Each rCell In rRng.Cells
        Debug.Print rCell.Address, rCell.Value
    Next rCell

End Sub

Loop through each cell in a range of cells when given a Range object