Excel VBA Настройка исходных данных диаграммы с использованием .SetSourceData

#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. На диаграмме уже выбран диапазон значений, нужно ли мне использовать другой элемент для обновления исходных данных?