Я думаю, вам нужен объект коллекции. Посмотрите на код ниже
Dim tacData() As Variant, makeData() As Variant, modelData() As Variant
tacData = Array("32064600", "33001000", "33001100", "33002400", "33003000", "33002401", "35011001", "35013200", "35124100", "35124101")
makeData = Array("Alcatel", "Alcatel", "Sagem", "Samsung", "AEG Mobile", "Samsung", "Nokia", "Maxon", "Siemes", "Nokia")
modelData = Array("One Touch EasyHD", "91009109MB2", "RC410G14", "SGH-200", "Sharp TQ6", "SGH-5300", "DCT-3", "MX6832", "MC399 Cellular Termnial", "DCT-4")
Dim i As Integer, N As Integer
N = UBound(tacData, 1) 'Get the data size
Dim item As Phone 'Temp variable for creating elements into a collection
Dim list As New VBA.Collection 'Define a new collection
For i = 1 To N
Set item = New Phone 'Assign a new Phone object
With item
.TAC = tacData(i) 'Assign values to the phone
.Make = makeData(i)
.Model = modelData(i)
End With
list.Add item, item.TAC 'Add the phone to the list with a KEY
Set item = Nothing
Next i
Dim TAC As String
TAC = "33002400" 'get user input
Set item = list(TAC) '** lookup Phone using Key **
If Not item Is Nothing Then ' Show results
Debug.Print item.TAC, item.Make, item.Model
Else
Debug.Print "Not Found"
End If
Работает с новым классом Phone, содержащим
Option Explicit
Public TAC As String
Public Make As String
Public Model As String
и вставляется в VBA через этот пункт меню и переименовывается в дереве проекта как «Телефон»
Требуется, чтобы код TAC был уникальным. В вашем случае это не так, и мне пришлось изменить некоторые цифры, чтобы сделать их уникальными. Как решить, что делать, если в реальной жизни есть несколько телефонов с одинаковым кодом TAC
.
PS. Добро пожаловать в мир объектно-ориентированного программирования. Это был твой первый шаг.