Итак, немного контекста. У меня есть некоторый код, который сортирует список местоположений частей, чтобы создать местоположения раскрывающегося списка, которые можно выбрать и которые позже будут использоваться в другом месте для сортировки. Местоположение представляет собой 9-значный код, и я пытаюсь использовать VLookup, чтобы найти имя, соответствующее его коду местоположения, на другом листе, объединяя их в массив, а затем отображая этот массив в поле со списком.
В настоящее время я получаю сообщение об ошибке «Subscript out of range» в строке, содержащей VLookup.
Locan2(i, 1) = Application.VLookup(Locan(i), Sheet16.Range("A2:D700"), 2, False)
Я включил ниже всю подпрограмму для контекста, любая помощь будет оценена, это меня сильно раздражает, и я не могу найти ничего похожего в своих поисках.
Private Sub Compbox() '<============Populates Location Drop down list==============>
Dim lastrow As Long
Dim Locn As String
Dim Locan() As String
Dim Locan2() As String
Dim Location As Collection
lastrow = Sheet5.Cells(Sheet5.Rows.Count, "J").End(xlUp).Row 'Find length of Sheet5
Set Location = New Collection
For i = 4 To lastrow
Locn = Sheet5.Cells(i, 10).Value
On Error Resume Next
Location.Add (Locn), CStr(Locn) 'Add location values, ignore duplicates
On Error GoTo 0
Next i
i = 0
QuickSort Location, 1, Location.Count 'Sort into ascending order
CollectionToArray Location, Locan 'Turn into an array
ReDim Locan2(UBound(Locan), 2)
For i = 0 To UBound(Locan)
Locan2(i, 0) = Locan(i)
Locan2(i, 1) = Application.VLookup(Locan(i), Sheet16.Range("A2:D700"), 2, False)
Next i
'Find the corresponding location name and create a 2D array
With Me.ComboBox2
.ColumnCount = 2
.BoundColumn = 1 'display combo box
.ColumnWidths = "1 in; 3in"
.List = Locan
End With
End Sub
Заранее спасибо за помощь!