使用VBA将Powerpoint图表标签提取到Excel
我需要找到一种方法将PowerPoint图表中的图表数据标签提取到Excel中,因为给我的PowerPoint图表的链接数据多次被破坏 我写了下面的代码,但我不知道在chtnow.SeriesCollection(1.Points…使用VBA将Powerpoint图表标签提取到Excel,excel,vba,charts,label,powerpoint,Excel,Vba,Charts,Label,Powerpoint,我需要找到一种方法将PowerPoint图表中的图表数据标签提取到Excel中,因为给我的PowerPoint图表的链接数据多次被破坏 我写了下面的代码,但我不知道在chtnow.SeriesCollection(1.Points… Sub Extract_Datalabels() 'Goal: To extract datalabels of Chart's series collection and write to excel Dim datapoint As Po
Sub Extract_Datalabels()
'Goal: To extract datalabels of Chart's series collection and write to excel
Dim datapoint As Point
Dim sh As Shape
Dim sld As Slide
Dim chtnow As Chart
Dim label As DataLabel
Dim xlApp As New Excel.Application
Dim xlWorkbook As Excel.Workbook
Dim xlworksheet As Excel.Worksheet
Set xlWorkbook = xlApp.Workbooks.Add
Set xlworksheet = xlWorksheets.Add
xlApp.Visible = True
Set chtnow = ActiveWindow.Selection.ShapeRange(1).Chart
For Each datapoint In chtnow.SeriesCollection(1).Points
'Extract data labels
If datapoint.HasDataLabel Then
[No clue how to write to Excel]
End If
Next
End Sub
如果代码的其他功能正常,这是一种在excel中写入
xl工作表
第一列的简单方法:
Dim cnt As Long
If datapoint.HasDataLabel Then
cnt = cnt + 1
xlworksheet.Cells(cnt, 1) = datapoint.label
End If
但是,我不确定设置
xlApp.Visible=True
后是否允许您执行类似的操作Set-chtnow=ActiveWindow.Selection.shaperage(1).Chart
您的示例中有几个类型错误,但这应该可以帮您完成任务。要使用Excel
对象类型和所有衍生工具,您需要添加对Microsoft Excel[a Number]对象库的引用
所有测试均使用条形图进行
Sub-Extract_Datalabels()
''目标:提取图表系列集合的数据标签并写入excel
将数据点变暗为图表点
现在是图表
Dim xlApp作为新的Excel.Application
将工作簿设置为Excel.工作簿
将工作表设置为Excel。工作表
暗排一样长
设xlApp.wWorkbook=1
设置xlWorkbook=xlApp.Workbooks.Add
设置xlworksheet=xl工作簿。工作表(1)
设xlApp.Visible=True
调用VBA.DoEvents
设置chtnow=ActiveWindow.Selection.shaperage(1.Chart)
设Row=1
对于chtnow.SeriesCollection(1.Points)中的每个数据点
'提取数据标签
如果datapoint.HasDataLabel,则
设xlsheet.Cells(行,1)=datapoint.DataLabel.Text
如果结束
设行=行+1
下一个
端接头
这算不上什么例子,但已经有问题了。代码应该在发布之前进行测试。(请参阅)另外,在[每个]模块[始终]的顶部使用Option Explicit
。这应该没有问题,因为Excel和PPT维护自己的(和单独的)窗口集合。