Private Sub FormatSeries()
Dim cht As ChartObject, n As Integer, ser As Series, pts As Points
Set cht = Sheets("ChartTool").ChartObjects("MyChart")
For Each ser In cht.Chart.SeriesCollection
'Set Series AxisGroup
ser.AxisGroup = xlPrimary
'Set Series MarkerStyle
ser.MarkerStyle = xlMarkerStyleNone
'Set Series Line weight, color, style
With ser.Format
.Line.Visible = msoTrue
.Line.Weight = 2.5
.Line.ForeColor.RGB = GetChartSeriesColor(ser.Name)
End With
'Set Series DataLabel: put series name on the last point
Set pts = ser.Points
With pts(pts.Count)
.ApplyDataLabels Type:=xlDataLabelsShowValue, AutoText:=True, LegendKey:=False
.DataLabel.Text = ser.Name
End With
Next
End Sub
В этой диаграмме к ней прикреплено около 200+ серий.Я использую код VBA для форматирования каждой серии на основе некоторых правил.Код работает.Единственная запутанная часть - если я уберу установленную инструкцию AxisGroup, скорость этого сабвуфера значительно увеличится, время выполнения меньше 2 с.Однако, если я верну код ser.AxisGroup = xlPrimary
, эта процедура займет около 20 секунд +, не знаю почему.Кто-нибудь может дать некоторые объяснения?спасибо