Ошибка несоответствия типов при поиске ячеек в таблице Excel - PullRequest
0 голосов
/ 10 ноября 2019

Итак, у меня есть лист с именем "Definições", в котором есть таблица "Tabela1" с 3 столбцами "Norma", "Tipo" и "Tempo", и я пытался выполнить поиск конкретных слов по всем 3 и, если они совпадаютони возвращают значение третьего. Однако при поиске только 2 столбцов у меня возникают трудности, поскольку он возвращает

тип ошибки «Несоответствие типов».

при установке переменной cell1. Итак, для первого столбца я ищу «Carregamento para», а для второго столбца я ищу «Pó Quimico B / C»

    Dim ws As Worksheet
    Set ws = Worksheets("Definições")

    Dim tbl1 As ListObject
    Set tbl1 = ws.ListObjects("Tabela1")

    Dim cell1 As Range
    Dim cell2 As Range
    Dim r As Integer

    r = 1
    With tbl1
        Do
            Set cell1 = .ListColumns("Norma").DataBodyRange.Find(What:="Carregamento para", After:=tbl.DataBodyRange.Cells(r, 1))
            Debug.Print "cell1=" & cell1.Row & " r=" & r
            Set cell2 = .ListColumns("Tipo").DataBodyRange.Find(What:="Pó Químico B/C", After:=tbl.DataBodyRange.Cells(cell1.Row - 1, 2))
            Debug.Print "cell2=" & cell2.Row & " r=" & r
            r = cell2.Row - 1
            MsgBox "Found " & cell1.Value & " at row " & cell1.Row & vbNewLine _
                 & "Found " & cell2.Value & " at row " & cell2.Row
        Loop While cell1.Row = cell2.Row
            MsgBox "Final value goes to row " & cell2.Row
    End With

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

...