使用vba更改现有PowerPoint图表的数据范围

时间:2018-05-24 14:08:03

标签: excel vba charts powerpoint

我正在尝试使用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

我在上面这样做(肯定不是完美的方式),因为我不知道Chart-Name(它应该适用于不同ppt-Files中的不同图表)。之后:

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-Chart。

奇怪的是,如果我使用

创建一个新图表
Set myChart = ppSlide.Shapes.AddChart2(297, xlBarStacked100).Chart

我设法调整数据区域的大小(使用相同的resize-code),但它不能与现有的Charts一起使用。顺便说一下,我不想将ppt-Chart链接到Excel(因为Excel-Tool一次又一次地使用,没有保存数据,并且可能需要再次编辑ppt-Charts)。

0 个答案:

没有答案