Как искать с «Совпадением» подряд? - PullRequest
0 голосов
/ 13 февраля 2020

Как я могу использовать функцию «Соответствие» в VBA для Excel для поиска заданного значения в строке, если я не хочу искать всю строку, но только от одной ячейки до конца строки, чтобы справа (сравните скриншот). Столбец ячейки, в которой должен начинаться поиск, определяется переменной. На самом деле я думал, что это будет работать со следующей командой, но появляется сообщение об ошибке. Если я заменю переменную столбца (oldReadColumn) константой (например, 6), она будет работать нормально.

Dim oldReadColumn As Integer
Dim newReadColumn As Integer
Dim searchValue As String
searchValue = "C"

newReadColumn = Application.Match(searchValue, ThisWorkbook.Worksheets("Sheet1").Range(Cells(32, oldReadcolumn), Cells(32, 2000)), 0)

Также посмотрите на этот снимок экрана: теперь нужно искать в отмеченном диапазоне (от oldReadColumn + 1 до Column) 2000)

Снимок экрана: Проблема визуально воссоздана в Excel:
Screenshot: Problem visually recreated in Excel

Ответ не может быть далеко, но я просто не могу понять это из.

1 Ответ

3 голосов
/ 13 февраля 2020

Вам необходимо полностью квалифицировать все ваши диапазоны / ячейки (отметьте все точки), и вы не определили oldReadColumn в вашем примере.

Это не проверено, но, как мне кажется, работает.

И объявите newReadColumn as variant, чтобы позволить вам не найти совпадения (что приведет к ошибке).

Dim oldReadColumn As Long
Dim newReadColumn As Variant
Dim searchValue As String

searchValue = "C"
oldReadColumn = 3

With ThisWorkbook.Worksheets("Sheet1")
    newReadColumn = Application.Match(searchValue, .Range(.Cells(32, oldReadColumn), .Cells(32, 2000)), 0)
End With

If IsNumeric(newReadColumn) Then
    'do stuff
Else
    MsgBox "Not found"
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...