Как исправить ошибку «380 во время выполнения: не удалось установить свойство RowSource». - PullRequest
0 голосов
/ 05 ноября 2019

Я использовал один и тот же код ниже для разных листов, и он работает правильно, но когда я редактировал его для нового набора листов в той же книге, появляется ошибка времени выполнения.

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

Я пробовал разные номера столбцов и имена листов, чтобы убедиться, что все совпадает, но всегда возникает ошибка времени выполнения.

1 Ответ

0 голосов
/ 06 ноября 2019

Зависит от того, что такое KitKit. Вам необходимо установить RowSourceType для правильной интерпретации значения. Если вы установите его в «Список значений», тогда список будет содержать только «KitKit». Поэтому я должен предположить, что вы пытаетесь использовать таблицу \ запрос или список полей. Похоже, вы говорите, что KitKit - это именованный диапазон, который указывает на формулу смещения. Это действительно было бы ошибкой. Результат «KitKit» должен содержать формат ответа и отвечать ему в соответствии с RowSourceType.

lstKitResult.RowSourceType = "Field List" 

Из документации:

Параметр свойства RowSource зависит от параметра свойства RowSourceType. Для этого параметра RowSourceType Введите этот параметр RowSource

Table/Query     A table name, query name, or SQL statement.
Value List      A list of items with semicolons (;) as separators.
Field List      A table name, query name, or SQL statement.

Источник: https://docs.microsoft.com/en-us/office/vba/api/access.listbox.rowsource

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