2017-04-13 81 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

請修改您的問題在評論中閱讀代碼並不容易,因爲它無法正確格式化。 –