Я попытался получить уникальное значение каждого столбца в диапазоне «RD» и отобразить их в одном столбце. Мне нужно создать объект («scripting.Dictionary»), где столько же столбцов в «RD». Я пробовал этот код, но в результате «Ошибка времени выполнения 13».Петля для создания объекта excel vba
Private Sub CommandButton1_Click()
Range(Me.RefEdit1).Name = "RD"
Range(Me.RefEdit2).Name = "OT"
Dim d As Object, c As Variant, i As Long, s As Long
Dim JK As Long
Dim o As Collection
JK = Range("RD").Columns.Count
Set d = CreateObject("Scripting.Dictionary")
For k = 0 To JK + 1
d.Item(k) = CreateObject("Scripting.Dictionary").Item(k)
c = Range("RD").Columns(k + 1)
If d.Exists(k) Then
d.Item(k) = d.Item(k) + 1 'increment
Else
d.Item(k) = 1 'set as 1st occurence
End If
For i = 1 To UBound(c, 1)
d.Item(k)(c(i, 1)) = 1
Next i
Range("OT").Cells((k * 5) + 2, 2).Resize(d.Item(k).Count) = Application.Transpose(d.Item(k).Keys)
Range("OT").Cells((k * 5) + 2, 2).Resize(d.Item(k).Count).Sort Key1:=Range("OT").Cells((k * 5) + 2, 2).Resize(d.Item(k).Count)
Next k
End Sub
Где это приводит к ошибке? Вы запустили код за строкой, чтобы узнать? –
JK = Range ("RD"). Столбец. Count приведет к самой ошибке «RD» не является допустимым диапазоном. Диапазон («D: R») будет допустимым диапазоном для столбцов D-R., если у вас нет именованного диапазона под названием RD – 99moorem
@ 99moorem Похоже, он устанавливает именованный диапазон 'RD' в первой строке своего кода. – user3561813