Поиск нескольких значений в данных листа - PullRequest
0 голосов
/ 08 января 2019

Я проследил это видео, чтобы создать одну и ту же функцию поиска с одного листа на другой. https://www.youtube.com/watch?v=8S4EdPJevlA&t=33s Это именно то, что я хотел бы сделать. Однако я настроил его так, чтобы поиск выглядел в столбце A, т. Е. (X, 1). Код таков, что он использует «=» в поле поиска «B3» и (x, 1).

Проблема в том, что я хотел бы иметь несколько идентификаторов в строках столбца A (x, 1), и некоторые строки будут иметь идентификаторы. Однако в настоящее время может использоваться только один идентификатор. Я почти ничего не знаю о VBA, за исключением того, что мне удалось скопировать некоторые из описанных выше видео.

Из моего ограниченного чтения, возможно, я должен пытаться реализовать строковую функцию VBS? Я не знаю

Sub searchMultipleValues()
Dim erow As Long
Dim ws As Worksheet
Dim lastrow As Long
Dim count As Integer

lastrow = Sheets("SRA").Cells(Rows.count, 1).End(xlUp).Row
Sheet1.Range("A14:K150").ClearContents

count = 0

Dim p As Long

p = 14

For x = 2 To lastrow

If Sheets("SRA").Cells(x, 1) = Sheet1.Range("B3") Then
Sheet1.Cells(p, 1) = Sheets("SRA").Cells(x, 1)
Sheet1.Cells(p, 2) = Sheets("SRA").Cells(x, 2)
Sheet1.Cells(p, 3) = Sheets("SRA").Cells(x, 3)
Sheet1.Cells(p, 4) = Sheets("SRA").Cells(x, 4)
Sheet1.Cells(p, 5) = Sheets("SRA").Cells(x, 5)
Sheet1.Cells(p, 6) = Sheets("SRA").Cells(x, 6)
Sheet1.Cells(p, 7) = Sheets("SRA").Cells(x, 7)
Sheet1.Cells(p, 8) = Sheets("SRA").Cells(x, 8)
Sheet1.Cells(p, 9) = Sheets("SRA").Cells(x, 9)
Sheet1.Cells(p, 10) = Sheets("SRA").Cells(x, 10)
Sheet1.Cells(p, 11) = Sheets("SRA").Cells(x, 11)

p = p + 1

count = count + 1

End If
Next x

End Sub

Итак, в конечном итоге я хотел бы иметь возможность использовать несколько поисковых терминов в строках столбца A и иметь несколько общих строк столбца A и содержать одинаковые идентификаторы для поиска, которые могут применяться к разным строкам

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 08 января 2019

Вы можете легко проверить совпадение нескольких ячеек с помощью функции соответствия рабочего листа.

For x = 2 To lastrow
    If Not IsError(Application.Match(Sheets("SRA").Cells(x, 1), Sheet1.Range("B3:B9"), 0)) Then

        Sheet1.Cells(p, 1) = Sheets("SRA").Cells(x, 1)
        Sheet1.Cells(p, 2) = Sheets("SRA").Cells(x, 2)
        Sheet1.Cells(p, 3) = Sheets("SRA").Cells(x, 3)
        Sheet1.Cells(p, 4) = Sheets("SRA").Cells(x, 4)
        Sheet1.Cells(p, 5) = Sheets("SRA").Cells(x, 5)
        Sheet1.Cells(p, 6) = Sheets("SRA").Cells(x, 6)
        Sheet1.Cells(p, 7) = Sheets("SRA").Cells(x, 7)
        Sheet1.Cells(p, 8) = Sheets("SRA").Cells(x, 8)
        Sheet1.Cells(p, 9) = Sheets("SRA").Cells(x, 9)
        Sheet1.Cells(p, 10) = Sheets("SRA").Cells(x, 10)
        Sheet1.Cells(p, 11) = Sheets("SRA").Cells(x, 11)

        p = p + 1
        Count = Count + 1

    End If
Next x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...