СообЧа > База Знаний > Программы > MS Excel

Вопрос

Как в Excel отразить на диаграмме изменение значения? Например, сегодня курс доллара 30,09 а вчера был 29,95.
Надо чтобы подпись была 30,09 (+0,14).

Ответ

Сначала строишь обычный график, с подписями, а потом запускаешь макрос. Но только потом после каждого изменения данных надо перезапускать этот макрос… вроде…

Sub SetLabels()
Dim oSr As Series
Dim oPt As Point
Dim dVal1 As Double, dVal2 As Double
ActiveChart.ApplyDataLabels xlDataLabelsShowNone
ActiveChart.ApplyDataLabels xlDataLabelsShowValue
For Each oSr In ActiveChart.SeriesCollection
dVal1 = 0
For Each oPt In oSr.Points
dVal2 = Val(oPt.DataLabel.Text)
oPt.DataLabel.Caption = Str(dVal2) + _
IIf(dVal2 > dVal1, " (+", " (") + _
Trim(Str(dVal2 — dVal1)) + ")"
dVal1 = dVal2
Next oPt
Next oSr
End Sub


есть еще коллекция ActiveChart.SeriesCollection(k).Values, тока я не разобрался, как ее размерность определить. Если б удалось — можно проще сделать:

For each oSr in ActiveChart.SeriesCollection

For i=1 to HZ
dVal2 = oSr.Values(i)

oSr.Points(i).DataLabel.Caption = …
Next i
Next oSr


Priam



Copyright © 2000-2004 Сообщество Чайников
Контактная информация