Мне нужно создать почти 200 графиков временных рядов. Поэтому я попытался написать макрос, который завершает большую часть работы, которую мне нужно сделать.
я сгенерировал имена для временных рядов, как это в качестве примера:Создание динамических диаграмм с VBA
Name:= AKB_ExampleA
Названия относится к динамическому диапазону, который я объявленный с этой формулой:
=OFFSET('sheet1'!$C$7:$C$137;0;0;COUNT('sheet1'!$C$7:$C$206))
Так что теперь к макро я кодированной до сих пор:
Sub graphik_erstellen()
Call graphik1("AKB")
End Sub
Sub graphik(Name As String)
'
Dim Ch As Chart
Dim RngToCover As Range
Set Ch = charts.Add
Set Ch = Ch.Location(Where:=xlLocationAsObject, Name:="Charts")
With Ch
.ChartType = xlLine
.SetSourceData Source:=Range(Name & "_ExampleA")
.SeriesCollection(1).XValues = Range("Datum_Volumen")
.SeriesCollection(1).Name = "SERIES1"
.FullSeriesCollection(1).Select
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(192, 0, 0)
.Transparency = 0
End With
.HasTitle = True
.ChartTitle.Text = Name & ", Volumen (nach Korrektur)"
.HasLegend = True
.Legend.Position = xlLegendPositionBottom
.Legend.Select
Selection.Format.TextFrame2.TextRange.Font.Size = 11
Selection.Format.TextFrame2.TextRange.Font.Bold = msoTrue
With .Parent
.top = 100
.left = 100
.height = 287.149606299
.width = 543.685039370078
.Name = Name & "_chart"
End With
End With
End Sub
Моя проблема в том, что если я это сделаю, динамический диапазон на самом деле не рассматривается. Он принимает диапазон имени (который равен $ C $ 7: $ C $ 137), но он должен ссылаться на само имя (для того, чтобы быть динамическим).
Так что, если я нажму на диаграмму, чтобы увидеть серию, значения серии будут объявлены как: ='sheet1'!$C$7:$C$137
вместо ='sheet1'!ExampleA
.
Я был бы очень, очень благодарен, если бы кто-нибудь мог мне помочь. Best Elio
Добро пожаловать в StackOverFlow. Вы действительно должны установить свой «Range», используя «Range». Просто чтобы подтвердить, что диапазон на листе, который вы просматриваете, попадает в диаграмму? –
Добавлены абзацы и исправлены небольшая грамматика. –
Спасибо вам за ваши комментарии. @ Jean-Pierre Oosthuizen Итак, мой диапазон должен быть динамичным. Он начинается с $ C $ 7 и доходит до $ C $ 137. каждый месяц появляются новые данные, поэтому графики должны настраиваться автоматически. –