Итак, у меня есть лист с именем "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 является правильным набором переменных для поиска, и, возможно, чтобы узнать, действительно ли это правильный выбор типа кода для использования в этой ситуации.