Изменение диапазона данных существующей PowerPoint-Chart с помощью vba - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь сделать следующее с помощью vba:

Я автоматически собираю данные в Excel и хочу вставить их в существующую диаграмму PowerPoint.

Работает нормально, этокак я это делаю (часть для вставки в powerpoint):

Dim myChart As PowerPoint.Chart
Dim myChart As PowerPoint.Chart
Dim myData As PowerPoint.ChartData
Dim myWkb As Excel.Workbook
Dim myWks As Excel.Worksheet
Dim wbcd As Workbook  

For chnmb = 1 To 1000
    On Error Resume Next
    Set myChart = ppSlide.Shapes(chnmb).Chart
    'test_name = myChart.Name
    If myChart.Name = "" Then Else Exit For
Next

Я делаю это выше (конечно, не идеальный способ), потому что я не знаю имя диаграммы (этодолжен работать на разных графиках в разных ppt-файлах).После этого:

Set myData = myChart.ChartData
Set myWkb = myData.Workbook
Set myWks = myWkb.Worksheets(1)

dat_area = "A1:" & Cells(1 + rowct, 1 + colct).Address(RowAbsolute:=False, ColumnAbsolute:=False)

myWks.ListObjects(1).Resize myWks.Range(dat_area)

Эта часть не работает.

Мне удается заполнить данные в диаграмме, используя:

myWks.Cells(j, i).Value = Workbooks("ppt-tool.xlsm").Sheets("Acc_Data").Cells(Row + j, 1 + i).Value

(через for-next;Я не хочу вставлять данные, но заполняю каждое поле) и позже редактировать Диаграмму, но это не изменит область данных (с синей рамкой вокруг нее) ppt-Диаграммы.

Странно, если я создаю новую диаграмму, используя

Set myChart = ppSlide.Shapes.AddChart2(297, xlBarStacked100).Chart

, мне удается изменить размер области данных (с тем же кодом изменения размера), но она не работает с существующими диаграммами.Кстати, я не хочу связывать ppt-Chart с Excel (поскольку Excel-Tool используется снова и снова без сохранения данных, и ppt-Charts, возможно, придется редактировать позже).

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