Я наткнулся на проблему, которую не могу решить.
Я пытаюсь создать словарь, как:
ключ: число в виде строки
item: массив строк
Когда я передаю ключи в MsgBox, все в порядке, но когда я хочу добавить элементы, я получаю ошибку несоответствия типов ...
Мой код выглядит так:
Sub test()
Dim dict As Scripting.Dictionary
Set dict = New Scripting.Dictionary
Dim records As String
Dim RecordArray() As String
Dim x As Integer
Application.ScreenUpdating = False
NumRows = Range("A1", Range("A1").End(xlDown)).Rows.Count
Range("A1").Select
For x = 1 To NumRows
If IsNumeric(Cells(x, 1).Value) Then
records = Trim(Cells(x, 2).Value)
RecordArray() = Split(records, ",")
dict.Add Key:=(Cells(x, 1).Value), Item:=RecordArray()
ActiveCell.Offset(1, 0).Select
End If
Next x
Application.ScreenUpdating = True
Dim key As Variant
For Each key In dict.Keys
MsgBox key
MsgBox dict(key)
Next key
End Sub
Данные, например:
A1:2001 B1: 0000101,0000102,0000103
A2:2015 B2: 0000107,0000108
A3:8000 B3: 0000215,0000216,0000217
и так далее.
Помните, что значения в столбце B начинаются с двух пробелов перед текстом.
Что я здесь не так делаю? Я знаю, что этот код, вероятно, не так хорош, но это как моя первая попытка с VBA: (