Я пытаюсь заполнить список портов на основе кода маршрута, выбранного в раскрывающемся меню. Выпадающий находится в диапазоне BASE_RouteCode ('Schedule Tool'!$F$8
), коды маршрута хранятся в динамическом диапазоне RouteCodes (=Routes!$B$2:INDEX(Routes!$B$2:$B$27, COUNTA(Routes!$B$2:$B$27))
), и списки портов хранятся вдоль строк из каждого кода маршрута в RoutePorts (=Routes!$B$2:INDEX(Routes!$B$2:$AZ$27, COUNTA(Routes!$B$2:$AZ$27))
) ,Заполнение списка на основе выпадающего списка
Цель состоит в том, чтобы каждое изменение BASE_RouteCode запускает подраздел, который заполняет список портов; в настоящий момент я объединил это как быструю попытку.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("BASE_RouteCode")
Call PopulatePortList
End Sub
Sub PopulatePortList()
Dim iCol As Integer, iRow As Integer
If IsNumeric(WorksheetFunction.Match(Range("BASE_RouteCode").Value, Range("Routecodes"), 0)) Then
iRow = WorksheetFunction.Match(Range("BASE_RouteCode").Value, Range("Routecodes"), 0) + 1
' Testing code
MsgBox "Row number for route " & Range("BASE_RouteCode").Value & " is " & iRow
Worksheets("Schedule Tool").Cells(8, 9).Value = iRow
' FOR ... WHILE loop (through iCol values) to populate list goes here
Else
MsgBox "Please select a valid route code."
End If
End Sub
При изменении значения раскрывающегося списка, хотя, есть краткое мерцание чего-то, но ничего явно не происходит, и ни одна из точек останова в коде не срабатывает.
вопросительные знаки:
- Я не уверен, если KeyCells должны быть такими же, как Target; что был скопирован из примера, который я нашел в другом месте, но ни один из них не работает .
- Если я попытаюсь запустить PopulatePortList вручную, я получаю сообщение об ошибке 1004 , когда он входит в предложение IF.
Куда я иду не так?
Это сработало отлично - огромное спасибо! –