VBA Количество строк до совпадения строки в другой книге - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь посчитать количество строк, пока строка не будет найдена в определенном столбце. Строка, которую я пытаюсь найти, находится в книге, из которой запускается код. Затем я беру эту строку и пытаюсь сопоставить ее со значением ячейки в столбце другой рабочей книги. Следующий код - это то, что я придумал, однако это всегда приводит к i=0, хотя я знаю, что строка определенно существует в другой книге.

    Set wkb = Excel.Workbooks("workbook1.xlsm")
    Set wks = wkb.Worksheets("Sheet1")

    n = ThisWorkbook.Sheets("Sheet1").Cells(x, "D").Value
    i = 0
    On Error Resume Next
    i = Application.WorksheetFunction.Match(n, wkb.wks.Range("A:A").Value, 0)
    On Error GoTo 0

Я пытался найти похожие проблемы в Интернете, однако все они работают, считая строки в одной книге. Есть идеи, что я делаю неправильно?

1 Ответ

2 голосов
/ 12 марта 2019

Второй аргумент Match - это Range, поэтому удалите .Value.

i = Application.WorksheetFunction.Match(n, wkb.wks.Range("A:A"), 0)

Удалите операторы On Error, и сообщение об ошибке укажет на проблему. Не вводите On Error Resume Next, если вы не проверили свой код полностью и не уверены, что любые (ожидаемые) ошибки можно игнорировать. Даже тогда, это должно использоваться редко.


Пожалуйста, переименуйте ваши переменные во что-нибудь полезное.

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