Так что у меня есть программа excel, которая проходит через несколько PDF-файлов и извлекает из них данные. Для этого он использует рубрику, в которой рассматриваются ключевые значения Named Ranges, которые являются RubricItems, RatingsValuesRow и RatingsColumn. Я должен использовать названные диапазоны, потому что рубрика может измениться в любой момент времени. Bellow - это фрагмент кода, с которым у меня возникают проблемы.Ссылка на словарь внутри словаря внутри словаря excel - VBA Обязательная ошибка объекта
Для этого rubricItemC.value = 1, subRubricItem = а, ratCell = 4
Dim ratingsCol As Range
Dim ratingsVal As Range
Dim rubricItem As Range
Dim rubricItemC As Range
Dim subRubricItem As Range
Dim gradeCount As Integer
Dim c As Range
Dim ratCount As Range
Dim ratCell As Range
count = 0
gradeCount = 0
Set rubricItem = Workbooks(strRubricTemplateFilename).Worksheets(RubricSheet).Range("RubricItems")
Set ratingsVal = Workbooks(strRubricTemplateFilename).Worksheets(RubricSheet).Range("RatingsValuesRow")
Set ratingsCol = Workbooks(strRubricTemplateFilename).Worksheets(RubricSheet).Range("RatingsColumn")
'populates the ratings values which consist of [X,1,2,3,4]
For Each c In ratingsVal.Cells
If Not (c.Value = "") Then
gradeValuesDict.Add c.Value, gradeCount
End If
Next
'iterates through each item in the rubric
For Each c In rubricItem.Cells
Set rubricItemC = c
Set ratCell = Cells(rubricItemC.Row, ratingsCol.Column)
Set subRubricItem = rubricItemC.offset(0, 1)
'checks to see if the dictionary exist if not create it.
If Not dict.Exists(rubricItemC.Value) Then
'adds to the dictionary passing another dictionary as the item.
dict.Add rubricItemC.Value, subRubricDict
End If
'checks to see if the sub dictionary exists if not create it.
If Not dict.Item(rubricItemC.Value).Exists(subRubricItem.Value) Then
dict.Item(rubricItemC.Value).Add subRubricItem.Value, gradeValuesDict
End If
dict.Item(rubricItemC.Value).Item(subRubricItem).Item(ratCell) = dict.Item(rubricItemC.Value).Item(subRubricItem).Item(ratCell) + 1
Next
Это где я получаю свой объект, необходимую ошибку.
dict.Item(rubricItemC.Value).Item(subRubricItem).Item(ratCell) = dict.Item(rubricItemC.Value).Item(subRubricItem).Item(ratCell) + 1
Я довольно новыми для VBA, но то, что Im пытается сделать здесь задание с gradeCount в пределах нескольких уровней dictionarys и увеличить значение на 1.
у вас есть '" 'один в середине линии, как это должно быть здесь? (С одной другой, потому что не может быть только один) – R3uK
Вашей линии ошибки в коде много двойных кавычек, которые не отображаются и не отображаются в вашем комментарии. '" categoryItemC.Value "' не то же самое, что 'рубрикаItemC.Value'.' "ratCell" 'это не то же самое, что' ratCell' ... Что такое фактическое утверждение в вашем коде? –
Я действительно пробовал оба не работать, возвращая ту же ошибку. Я не совсем уверен, какой синтаксис верен. @ASH – Persiden