首页 > 解决方案 > 使用 vba 更改现有 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

我在上面这样做(肯定不是完美的方式),因为我不知道图表名称(它应该适用于不同 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 可能需要稍后再次编辑)。

标签: excelvbachartspowerpoint

解决方案


推荐阅读