как использовать VBA для настройки диапазона выбора данных в диаграмме PowerPoint - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть код VBA, который копирует некоторые данные из Excel, а затем вставляет данные в PowerPoint для создания гистограммы. Это делается путем вставки данных в таблицу Excel в виде гистограммы. Проблема, с которой я сталкиваюсь, заключается в том, что данные, которые вставляются в диаграмму powerpoint, будут различаться по размеру, поэтому я хочу убедиться, что диаграмма powerpoint будет включать все содержимое.

Вот пример кода, который копирует данные из Excel в PowerPoint. Копирование и вставка работает отлично. Я просто не знаю, как изменить диапазон выбора данных

Thisworkbook.sheets("ws").Range("AF6:AJ6").select
Range(Selection, Selection.End(xlDown).Select
selection.Copy
With ppslide.Shapes("Chart").Chart.ChartData
.Activate
.workbook.Sheet(1).Range("A2").PasteSpecial Paste:=xlPasteValues
.workbook.close

1 Ответ

0 голосов
/ 02 ноября 2018

Используйте метод SetSourceData для Chart.

Это может выглядеть примерно так:

With ppslide.Shapes("Chart").Chart
    With .ChartData.Workbook.Worksheets(1)
        .Range("A2").PasteSpecial Paste:=xlPasteValues

        Dim lastRow as Long
        lastRow = .Cells(.Rows.Count, "E").End(xlUp).Row

        Dim dataAddress as String
        dataAddress = .Range(.Cells(1, 1), .Cells(lastRow, "E")).Address(External:=True)
    End With

    .SetSourceData dataAddress
End With

Вы могли бы быть в состоянии упростить использование UsedRange (кажется, работает, но не полностью проверено):

With ppslide.Shapes("Chart").Chart
    With .ChartData.Workbook.Worksheets(1)
        .Range("A2").PasteSpecial Paste:=xlPasteValues

        Dim dataAddress as String
        dataAddress = .UsedRange.Address(External:=True)
    End With

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