Почему я получаю ошибку 2042 в результате сопоставления VBA с помощью оператора, как показано в документации MS - PullRequest
0 голосов
/ 27 октября 2019

У меня есть шерстяной лист (TMP) с 2 колонками (A + B). В полковнике А есть числа в виде строки, в полковнике В есть числа. Теперь я пытаюсь получить соответствующий номер для данной строки.

Я уже много чего перепробовал, ничего не помогло. Насколько я понимаю, код заявления о совпадении совпадает с кодом в документации MS. Я даже сделал то же самое с циклом foreach, который работал нормально, но немного медленно.

Public Function SuchenKonto(Konto As String) As Boolean
    Dim ind As Variant
    Dim Rückgabe As Boolean
    Dim Vergl As Variant
    Vergl = Konto
    Rückgabe = False

    ind = Application.Match(Konto, Worksheets("TMP").Columns(1), 0)


    If Not IsError(ind) Then
        Rückgabe = True
        Worksheets("TMP").Range("B" & ind).Copy
        Sheets("Monatsvergleich").Range("AD1").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, Transpose:=False
    End If
    SuchenKonto = Rückgabe

End Function

Что я могу сделать, чтобы вернуть индекс строки с правильными датами?

1 Ответ

0 голосов
/ 28 октября 2019

Кажется, что первым параметром функции Match должно быть значение в ячейке. После добавления следующей строки перед строкой с функцией соответствия

Sheets ("TMP"). Range ("H1"). Cells (1, 1) .Value = Konto

иизменение строки с помощью функции Match на

ind = Application.Match (Sheets ("TMP"). Range ("H1"). Cells (1, 1) .Value, Workbooks (m_WBKum) .Worksheets(«TMP»). Столбцы (1), 0)

работает без дальнейших ошибок.

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