Я уверен, что мне не хватает огромного слона в комнате, но я продолжаю получать ошибки. Я создаю открытый словарь под названием Prompts
и заполняю его специальным объектом класса в нижеприведенном разделе.Looping Через словарь с пользовательскими объектами
Public Sub SetPromptControls()
Dim PromptsRange As Range
Dim PromptRow As Range
Set PromptsRange = Range("LookUpTablePrompts")
Dim NewPrompt As clsPrompt
For Each PromptRow In PromptsRange.Rows
Set NewPrompt = New clsPrompt
NewPrompt.Name = PromptRow.Cells(1, 1)
NewPrompt.ControlType = PromptRow.Cells(1, 2)
NewPrompt.ComboboxValues = PromptRow.Cells(1, 3)
NewPrompt.HelpText = PromptRow.Cells(1, 4)
NewPrompt.TabIndex = PromptRow.Cells(1, 5)
NewPrompt.ColumnIndex = PromptRow.Cells(1, 6)
NewPrompt.TableIndex = PromptRow.Cells(1, 7)
NewPrompt.ControlName = PromptRow.Cells(1, 8)
Me.Prompts.Add NewPrompt.ControlName, NewPrompt
Next
End Sub
Теперь я пытаюсь прокрутить словарь, который я только что сделал в этом следующем подразделении, находящемся внутри одного класса. Проблема в том, для каждого цикла продолжает давать мне ошибку
Public Sub SetProductPromptMapping()
Dim ProductPromptMappingRange As Range
Dim SKURange As Range
Dim SKUPromptMapRow As Integer
Dim MapRow As Range
Dim Key As Variant
Dim Prompt As clsPrompt
Set ProductPromptMappingRange = Range("LookUpTablePromptMap")
Set SKURange = ProductPromptMappingRange.Find(PromptsForm.SKU, LookIn:=xlValues)
SKUPromptMapRow = SKURange.Row - 2
For Each Key In Prompts.Keys
Set Prompt = New clsPrompt
Prompt = Key
Me.ProductPromptMappingRow.Add Prompt.ControlName, ProductPromptMappingRange.Cells(SKUPromptMapRow, Prompt.TableIndex).Value
Next
End Sub
объект В конечном счете, я хотел бы Переберите мой Prompts
словаря и бросил текущий элемент назад к моему clsPrompt
объекту класса, так что я могу получить доступ к его свойствам.
'Set Prompt = Prompts (Key)' и удалить строку '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' – Comintern