VBA Поиск значения ячейки в диапазоне - PullRequest
0 голосов
/ 29 апреля 2019

Я делаю алгоритм и хотел попробовать в Excel VBA.После выполнения некоторых критериев я хочу найти значение ячейки в определенном диапазоне (и оно определенно есть), но VBA, похоже, не находит его.

Я искал похожие случаи и также пыталсязатемнение переменных и добавление их в мой код, но это не похоже на работу.Когда я пытаюсь использовать debug.print для Range («AA2: AA16»), возникает ошибка.Это работает для другого диапазона.

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

Я ожидаю, что он найдет значение AK2 в диапазоне "AA2: AA16" и вернет адрес.После этого я хочу, чтобы код выделил строку этой находки, чтобы выбрать столбец значения AM3 в диапазоне «AA1: AD1», а затем пересечь оба и сумму 1 до этого пересечения.

1 Ответ

0 голосов
/ 29 апреля 2019

Надеюсь, я правильно понял вашу проблему. Постарайтесь понять этот код, он должен вам помочь.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...