У меня есть сводная таблица в Excel с количеством баллов, набранных каждым учеником за 3 упражнения. Я хотел бы отсортировать данные из упражнения в порядке убывания, используя код VBA, так что я могу узнать, у какого студента набрал лучший результат в упражнении 3. Моя реальная таблица намного больше, поэтому мне нужно сделать код для этого.
Student exercise 1 exercise 2 exercise 3 Total
Mary 2 10 5 17
Peter 6 2 11 18
Karen 20 7 14 41
Total 28 19 30 77
Вот мой код:
Sub SortDescending()
Dim Cell1 As Range
Dim Cell2 As Range
'Seeting the cell Mary ex1 to the variable Cell1
Range("A2").End(xlToRight).Select
ActiveCell.Offset(columnOffset:=-1).Activate
ActiveCell.Offset(rowOffset:=1).Activate
ActiveCell.Select
Set Cell1 = ActiveCell
'Seeting the cell Karen ex3 to the variable Celula2
Range("A2").End(xlDown).Select
ActiveCell.End(xlToRight).Select
ActiveCell.Offset(columnOffset:=-1).Activate
ActiveCell.Offset(rowOffset:=-1).Activate
Set Cell2 = ActiveCell
'Sorting the penultimate column
Cell1.Select
ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("Supp Desc").AutoSort _
xlDescending, "Student", ActiveSheet.PivotTables( _
"Tabela dinâmica1").PivotColumnAxis.PivotLines(3), 1
End Sub
Я хотел вставьте PivotLines (Cell1) вместо числа 3 в аргументе. Или заставить сортировать нисходящий код работать для сводных таблиц , не зная позиции ячейки .