我试图根据在下拉菜单中选择的路由代码填充端口列表。下拉范围为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应该是一样的目标;那 是从我在其他地方找到的一个例子中复制出来的,但似乎并没有 的工作。
- 如果我尝试手动运行PopulatePortList,那么当它进入IF子句时,会出现1004 错误。
我在哪里错了?
工作完美 - 非常感谢! –