Ошибка объекта при повторной попытке установить метки данных для диаграммы рассеяния в Excel 2010 - что не так в приведенном ниже коде? - PullRequest
0 голосов
/ 05 мая 2020

Приведенное ниже сводит меня с ума, был бы признателен за любую помощь по следующей строке, которая вызывает проблемы.

Set CompanySeries = ActiveWorkbook.Sheets("Carbon Tax Impact on EBT").ChartObjects(1).Chart.SeriesCollection(1)

Полный код также опубликован ниже.

    Sub ScatterPlot1()

Dim work_book As Workbook
Dim r As Integer
Dim i As Long
Dim objSelection As Range, obJSrcData As Range, objCategories As Range

Set work_book = Application.ActiveWorkbook
ActiveWorkbook.Sheets("Input").Select

Set objChart = Charts.Add
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "=Input!$P$5:$P$19"
ActiveChart.SeriesCollection(1).Values = "=Input!$Q$5:$Q$19"
With objChart
    'Set properties
    .ChartType = xlXYScatter
    .Location xlLocationAsNewSheet, "Carbon Tax Impact on EBT"
    .HasTitle = True
    .ChartTitle.Text = "Carbon Taxation Impact on EBT"
    .HasLegend = False

    .Axes(xlCategory, xlPrimary).HasTitle = True
    .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "EBT @ Risk"

    .Axes(xlValue, xlPrimary).HasTitle = True
    .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "EBT Margin Impact"
End With

Set objCategories = ActiveWorkbook.Sheets("Input").Range("P5:P19")
Set objSelection = ActiveWorkbook.Sheets("Input").Range("Q5:Q19")

Dim r1 As Range
    Dim CompanyNames As Range
    Dim CompanyCounter As Integer
    Dim CompanySeries As Series

    Sheets("Input").Select
    Set CompanyNames = Range("O5:O19")
    Sheets("Carbon Tax Impact on EBT").Select
    Set CompanySeries = ActiveWorkbook.Sheets("Carbon Tax Impact on EBT").ChartObjects(1).Chart.SeriesCollection(1)

    CompanySeries.HasDataLabels = True

    For Each r1 In CompanyNames

        CompanyCounter = CompanyCounter + 1
        CompanySeries.Points(CompanyCounter).DataLabel.Text = r1.Value

    Next r1

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...