У меня есть следующий код, который проходит через диапазон и форматирует немного PivotItems
, в соответствии со значением диапазона.Код переходит с одного листа (с именами и ответами учащихся) на другой (с сводной таблицей с двумя RowLabels, QuestionNo и StudentName), а когда находит правильный PivotItem, изменяет его формат.
Sub Macro1()
Dim student As String, q1 As String
Dim pt as PivotTable
Worksheets("SheetPivot").Activate
Set pt = ActiveSheet.PivotTables(1)
'Jumps to the Sheet with the range to loop
Worksheets("QuizState").Activate
'Goes to the first value
Range("A1").Select
'Sarts the loop
Do Until IsEmpty(ActiveCell.Value)
'Determines what type of value is.
student = ActiveCell.Value
q1 = ActiveCell.Offset(0,1).Value
If q1 = "WRONG" then
'Jumps to Sheet with PivotTable
Worksheets("SheetPivot").Activate
pt.PivotFields("StudentName").PivotItems(student).LabelRange.Select
Selection.Interior = 65535 'Yellow
Worksheets("QuizState").Activate
End If
ActiveCell.Offset(1,0).Select
Loop
End Sub
Теперь, по какой-то причине иногда это работает, иногда он возвращает Run-time error '1004': Unable to get the PivotItems property of the PivotField Class
, что, я полагаю, связано с тем, что не найден элемент student
, но он точно есть.
Может кто-нибудь помочь мне отладитькод?