2017-04-13 59 views
-1

已格式化代码,如下所示。错误之际,数据成员没有出现在“.Sheets(1).Range(‘A7’)。值”PPT VBA从ppt形状发送触发器到图表数据

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 
+0

请正确格式化您的代码,并详细说明哪些不适合您。即“我无法从powerpoint的表格数据源获取数值”或“我如何使用演示模式中的下一个按钮来运行子程序?”。 –

+0

请使用{}按钮格式化您的代码。 – z32a7ul

+0

简单地说,我需要使用“10”来填充ChartData的单元格a1 –

回答

0

ChartData对象指的是整个Workbook,所以你可能得到类似438的错误发现:对象不支持此属性或方法,因为Cell不是Workbook对象的子对象。

NB也Cell不是Worksheet对象的孩子,或者说,它是CellsRange,你需要的,你需要有资格的是一个工作表,像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它,随后关闭它。因人而异。

+0

嗨,试过你的答案,但得到错误,“数据成员未找到”下面是脚本和错误是@“.Sheets(1).Range(”A7“)。Value”。 –

+0

Sub DATA() temp = 0 ActivePresentation.Slides(4).Shapes(“Temp”).TextFrame.TextRange.Text = ActivePresentation.Slides(4).Shapes(“Temp”).TextFrame.TextRange.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.TextRange.Text .Workbook.Close End With End Sub –

+0

请修改您的问题在评论中阅读代码并不容易,因为它无法正确格式化。 –