excel - 使用 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 可能需要稍后再次编辑)。
解决方案
推荐阅读
- javascript - 变量已设置但未在 echo 语句中显示
- ruby - 如何评估嵌套数组?
- ruby-on-rails - 配置后 Ngnix 仍然看到欢迎屏幕
- javascript - 从量角器中的 AngularJS 下拉列表中选择。
- django - Django-如何检索登录用户朋友的帖子数据
- java - Java:同时使用 2 个线程更改/替换和读取相同的 int/Object 是否安全?
- dart - 颤振共享插件不起作用
- javascript - mouseenter 后的段落随机大写单词
- python - 如何在打开新窗口时停止主窗口并获取我的值
- javascript - 我怎样才能命名函数,但仍然保持它们可摇晃?