Я пытаюсь сделать следующее с помощью 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, возможно, придется редактировать позже).