#excel #vba #excel-charts
Вопрос:
Я пытаюсь обновить диапазон исходных данных диаграмм на своем листе, но получаю ошибку времени выполнения «445». Документация утверждает, что Chartobject.Chart.SetSourceData Source:=Range
это должно быть допустимо, но почему мой код терпит неудачу, когда я пытаюсь установить исходные данные FirstChart? Я также получаю другую ошибку (-2147467259 80004005) при добавлении PlotBy
модификатора во вторую диаграмму.
Вот мой код.
Public Sub ReGenerateCharts()
Dim Ws As Worksheet
Set Ws = Worksheets("Chart Sheet")
Dim FirstBottomCell As Long
Dim SecondBottomCell As Long
Dim FirstSourceData As Range
Dim SecondSourceData As Range
Dim FirstChart As ChartObject
Dim SecondChart As ChartObject
With Ws
Set FirstChart = .ChartObjects("Chart 1")
Set SecondChart = .ChartObjects("Chart 2")
FirstBottomCell = .Cells(.Rows.Count, 15).End(xlUp).Row
SecondBottomCell = .Cells(.Rows.Count, 24).End(xlUp).Row
Set FirstSourceData = .Range(.Cells(4, 15), .Cells(FirstBottomCell, 15))
Set SecondSourceData = .Range(.Cells(4, 24), .Cells(SecondBottomCell, 24))
End With
FirstChart.Chart.ChartType = xlHistogram
SecondChart.Chart.ChartType = xlHistogram
FirstChart.Chart.SetSourceData Source:=FirstSourceData
SecondChart.Chart.SetSourceData Source:=SecondSourceData, PlotBy:=xlRows
End Sub
Комментарии:
1. Попробуй
FirstChart.Chart.SetSourceData
—SetSourceData
это член аChart
, а не аChartObject
.2. Что это за диаграммы такого типа?
3. Гистограммы, диаграммы по умолчанию, вставленные с ленты.
4. На диаграмме уже выбран диапазон значений, нужно ли мне использовать другой элемент для обновления исходных данных?