VBA: я пытаюсь заполнить гистограммы на основном листе на основе данных, которые содержатся на отдельном листе. Однако мне нужно получить vba для сортировки данных в порядке убывания перед заполнением диаграммы.
У меня есть макросы для заполнения таблиц лиг на ежегодной основе, однако каждый раз, когда я запускаю макрос для выбранного года, гистограмма генерируется без сортировки данных в порядке убывания. Когда я пытаюсь включить код для сортировки данных, я обычно получаю ошибку времени выполнения 91.
Вот мой текущий код - кто-нибудь может мне помочь? Это мой первый раз, используя VBA. В идеале я хотел бы отсортировать данные в столбце N перед созданием диаграммы. Благодарю.
Sub NewIssues2014()
Dim sht As Worksheet
Dim dashboard As Worksheet
Set sht = Worksheets("New Issues League Table")
Set dashboard = Worksheets("Dashboard")
ArrangerLastRow = sht.Cells(Rows.Count, 12).End(xlUp).Row
YearLastRow = sht.Cells(Rows.Count, 14).End(xlUp).Row
Sheets("New Issues League Table").Select
Range("M1:S1").Select
Selection.AutoFilter
ActiveWorkbook.Worksheets("New Issues League Table").AutoFilter.Sort.SortFields _
.Clear
ActiveWorkbook.Worksheets("New Issues League Table").AutoFilter.Sort.SortFields _
.Add Key:=Range("N1"), SortOn:=xlSortOnValues, Order:=xlDescending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("New Issues League Table").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
With dashboard
dashboard.Shapes.AddChart.Select
ActiveChart.ChartType = xlBarStacked
ActiveChart.SetSourceData Source:=sht.Range("L2:L" & ArrangerLastRow & ",N2:N" & YearLastRow), PlotBy:=xlColumns
ActiveChart.Axes(xlCategory).Select
ActiveChart.Axes(xlCategory).ReversePlotOrder = True
ActiveChart.Axes(xlCategory).Crosses = xlMaximum
ActiveChart.HasTitle = True
ActiveChart.HasLegend = False
ActiveChart.ChartTitle.Text = "2014 New Issue Deals"
End With
With ActiveChart.Parent
.Height = 325
.Width = 900
.Top = 1070
.Left = Range("B94").Left
End With
End Sub