VBA查找范围内的单元格值

时间:2019-04-29 11:55:46

标签: excel vba

我正在做一个算法,想在Excel VBA中进行试用。满足某些条件后,我想在某个范围内找到一个单元格值(并且绝对在该范围内),但是VBA似乎找不到它。

我一直在寻找类似的情况,还尝试将变量变暗并将其添加到我的代码中,但这似乎没有用。当我尝试对Range(“ AA2:AA16”)使用debug.print时,它会遇到错误。 它适用于其他范围。

Sheets(9).Range("AA2:AA16").Find (Sheets(9).Range("AK2").Value)     
Debug.Print Sheets(9).Range("AA2:AA16").Find(Sheets(9).Range("AK2").Value).Adress

Sheets(9).Range("AA1:AD1").Find (Sheets(9).Range("AM3").Value)
Debug.Print Sheets(9).Range("AA1:AD1").Find(Sheets(9).Range("AM3").Value).Address

我希望它在“ AA2:AA16”范围内找到AK2值并返回地址。之后,我希望代码选择该行,选择“ AA1:AD1”范围内的AM3值列,然后将两者相交并将之和1到该交点。

1 个答案:

答案 0 :(得分:0)

希望我能解决您的问题。尝试理解此代码,它应该可以指导您。

screenshot of example

Sub test()
    Dim r1 As Range, r2 As Range, r3 As Range

    Set r1 = Sheets(1).Range("A2:A8").Find(Sheets(1).Range("A13"))
    If Not r1 Is Nothing Then
        Debug.Print r1.Address
    Else
        Debug.Print "not found"
    End If

    Set r2 = Sheets(1).Range("B1:D1").Find(Sheets(1).Range("A14"))
    If Not r2 Is Nothing Then
        Debug.Print r2.Address
    Else
        Debug.Print "not found"
    End If

    If Not (r1 Is Nothing Or r2 Is Nothing) Then
        Set r3 = Cells(r1.Row, r2.Column)
        Debug.Print r3.Address
        Debug.Print r3.Value
    Else
        Debug.Print "not found"
    End If
End Sub