Я использовал один и тот же код ниже для разных листов, и он работает правильно, но когда я редактировал его для нового набора листов в той же книге, появляется ошибка времени выполнения.
Private Sub cmdSearchKitDesc_Click()
Dim RowNum As Long
Dim SearchRow As Long
RowNum = 3
SearchRow = 3
Worksheets("Kit_database").Activate
Do Until Cells(RowNum, 1).Value = ""
If InStr(1, Cells(RowNum, 3).Value, txtKitKeyword.Value, vbTextCompare) > 0 Then
Worksheets("Kit_search").Cells(SearchRow, 2).Value = Cells(RowNum, 2).Value
Worksheets("Kit_search").Cells(SearchRow, 3).Value = Cells(RowNum, 3).Value
Worksheets("Kit_search").Cells(SearchRow, 4).Value = Cells(RowNum, 4).Value
Worksheets("Kit_search").Cells(SearchRow, 5).Value = Cells(RowNum, 6).Value
Worksheets("Kit_search").Cells(SearchRow, 6).Value = Cells(RowNum, 8).Value
Worksheets("Kit_search").Cells(SearchRow, 7).Value = Cells(RowNum, 9).Value
SearchRow = SearchRow + 1
End If
RowNum = RowNum + 1
Loop
If SearchRow = 2 Then
MsgBox "No kits were found that match your criteria."
Exit Sub
End If
lstKitResult.RowSource = "KitKit"
End Sub
Я изменил RowNum на 3, чтобы соответствовать столбцу листа (в этом случае я хотел бы найти описание комплекта), который я хотел бы искать и соответственно в строке. Я тщательно проверил, правильно ли названы используемые им листы и функция OFFSET.
Поле со списком, которое я хотел бы заполнить, использует, lstKitResult.RowSource = "KitKit"
, где "KitKit" использует следующую формулу OFFSET, =OFFSET(Kit_search!$B$3,0,0,COUNTA(Kit_search!$C:$C)-1,6)
Лист "Kit_database" содержит все различные типы наборовЯ бы искал от. Лист "Kit_search" является заполнителем для всех найденных результатов, которые соответствуют искомому описанию набора. Функция OFFSET извлекает данные «Kit_search», которые должны быть заполнены результатами поиска txtKitKeyword.Value
Я пробовал разные номера столбцов и имена листов, чтобы убедиться, что все совпадает, но всегда возникает ошибка времени выполнения.