PPT VBA从ppt形状向图表数据发送触发器

时间:2017-04-13 14:05:32

标签: vba powerpoint powerpoint-vba

已将代码格式化如下。在“.Sheets(1).Range(”A7“)找不到数据成员时出现错误。值”

 Sub DATA()
 temp = 0
 ActivePresentation.Slides(4).Shapes("Temp").TextFrame.TextRa‌​nge.Text = ActivePresentation.Slides(4).Shapes("Temp").TextFrame.TextRa‌​nge.Text +1 'counter to add +1
 With ActivePresentation.Slides(4).Shapes("Bar1").Chart.ChartData 
    .Activate 
    .Sheets(1).Range("A7").Value = ActivePresentation.Slides(4).Shapes("Temp").TextFrame.TextRa‌​nge.Text
    .Workbook.Close 
End With 
End Sub 

1 个答案:

答案 0 :(得分:0)

ChartData对象引用整个Workbook,因此您可能会收到类似438的错误:对象不支持此属性或方法,因为Cell不是Workbook对象的孩子。

另外,Cell不是Worksheet对象的孩子,也不是您需要的CellsRange,而且您是&#39}。我需要将其限定为工作表,例如Sheets(1)(根据需要进行修改)。

所以,试试:

Dim val$
val = ActivePresentation.Slides(4).Shapes("temp").textrange.text
With ActivePresentation.Slides(4).Shapes("Bar1").Chart.ChartData
    '.Activate
    ' something like this:
    .Sheets(1).Range("A1").value = val
    .Workbook.Close
End With

理论上,您应该能够使用With块来管理ChartData对象。在实践中,我总是必须实际Activate它,然后关闭它。 YMMV。