Я пытаюсь сортировать строки по именам и помещать их в свои собственные таблицы.Я использую словарь, чтобы отслеживать текущую строку для каждого.Я включил ссылку на Microsoft Scripting Runtime.Каждый раз, когда я запускаюсь, он попадает на строку, указанную в коде, а затем выдает ошибку времени выполнения 1004, определенную приложением или определенную объектом ошибку.Кроме того, когда я смотрю nameDict
значение: <Object variable or With block variable not set>
, но тип Dictionary
.Это потому, что он не инициализируется должным образом?Я прочитал несколько разных способов инициализации словаря и не знаю, как лучше.Все остальные переменные и функции работают правильно, так как они были протестированы независимо и в других подпрограммах.
Private Sub sortTeamWork()
Dim nameDict As New Scripting.Dictionary
Dim index As Integer
index = getTargetColumn("Last Name")
For i = CInt(getUsedRows()) To 2 Step -1
name = Cells(i, index - 1) + " " + Cells(i, index)
'The below line is where the error occurs
If nameDict.Exists(name) Then
nameDict.Items(name) = nameDict.Items(name) + 1
Cells(i, index).EntireRow.Copy Destination:=Worksheets(name).Range("A" & nameDict(name))
Else
nameDict.Items(name) = 2
Cells(i, index).EntireRow.Copy Destination:=Worksheets(name).Range("A" & nameDict(name))
End If
Next i
End Sub
На листе есть заголовок, к которому я пытаюсь скопировать строку, поэтому он должен начинаться со строки2 и прирост оттуда.Любая помощь будет оценена.