я определил именованный, используя следующий код:VBA реферирование именованный диапазон
ActiveWorkbook.ActiveSheet.Names.Add Name:="BCLabel", RefersToR1C1:= _
"=OFFSET(R46C3,1,0,COUNTA(R46C3:R69C3)-2)"
ActiveWorkbook.ActiveSheet.Names("BCLabel").Comment = ""
Этот код повторяется в течение нескольких рабочих листов, таким образом, что у меня есть много именованных диапазонов под названием BCLabel, хотя это относится к различным диапазонам. Например,
=OFFSET('January'!$C$46,1,0,COUNTA('January'!$C$46:$C$69)-2)
=OFFSET('February'!$C$46,1,0,COUNTA('February'!$C$46:$C$69)-2)
=OFFSET('March'!$C$46,1,0,COUNTA('March'!$C$46:$C$69)-2)
Я хотел бы закодировать создание диаграммы в каждом из этих листов, в котором указан правильный именованный диапазон. Я попытался следующий код:
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlColumnClustered
ActiveChart.Name = "BCChart"
ActiveChart.SeriesCollection(1).Values = _
"==BCLabel"
ActiveChart.SeriesCollection(2).Values = _
"==BCLabel"
Однако это не работает: «== BCLabel» не ссылается на правильный именованный диапазон, и не «== ActiveSheet.BCLabel». Буду признателен за любую помощь.
В стороне я также столкнулся с ошибкой в строке ActiveChart.Name = "BCChart".
Спасибо за помощь!
[** 'ActiveChart.Parent.Name '**] (http://stackoverflow.com/questions/20973149/vba-run-time-error-7-when-naming-xlxy-scatterlines-chart/20973283#20973283) –
Почему существует двойная' == '? –
@mehow Я записал макрос, который задал значение ActiveChart.SeriesCollection (1) .Values, и это использовало double ==, и я использовал этот код и внесли поправки, соответственно, для ссылки на соответствующий именованный диапазон. –