簡體   English   中英

將Excel數據粘貼到Powerpoint圖表數據表中

[英]Pasting excel data into a powerpoint chart data sheet

我希望smeone在這方面可以幫助我。 我想從excel中獲取dta並粘貼到PowerPoint圖表中,就像我手動執行但使用代碼一樣。 我想自動創建通常為不同客戶群創建的標准演示文稿。 (我正在處理SAS中的數據,並將其從SAS中提取到一個具有相同選項卡並每次格式化的Excel文件中)

我能夠編寫附加的宏,這只是第一次嘗試使用虛擬日期來查看其工作原理,然后我從其他Web來源進行了廣泛的復制。 它一直在工作直到結束。 它打開了智能點,為包含我的模板的頁面創建了一個頁面,並添加了正確類型的圖表。 它將打開該圖表的數據表。 問題是我無法粘貼數據。

我相信我沒有正確地引用過優秀的Excel工作表,因此VBA變得混亂了(應該如此)。 有人可以解釋我該怎么做。

最后,我可能會修改它以打開現有圖表並粘貼新數據,就像Irather所做的那樣,一旦完成格式化,就可以在代碼中完成所有這些工作(我還准備好進行基本演示)。 但是我將需要能夠粘貼數據。

在該網站上以及其他地方,有很多關於如何將圖表從Excel復制到PPT的示例,但是我不想這樣做,我希望PPT存儲數據,以便可以根據需要在創建后對其進行修改。 但是,我還沒有找到可以完成我想要完成的任務的工具。

如果有問題,我正在使用Office 2010。

在此先感謝任何可以幫助我的人。

馬里奧

子測試()

Set ObjPPT = CreateObject("PowerPoint.Application")
Set ObjPresentation = ObjPPT.Presentations.Add
ObjPresentation.ApplyTemplate ("C:\Documents and Settings\ewnym5s\My Documents\Tools\Clean PPT Page.potx")
Set ObjSlide = ObjPresentation.Slides.Add(1, 12)
Set mychart = ObjSlide.Shapes.AddChart(xlBarClustered, 200, 200, 500, 200).Chart

Set wb = mychart.ChartData.Workbook
Set ws = wb.Worksheets(1)
ws.ListObjects("Table1").Resize ws.Range("A1:D6")


Sheets("Sheet1").Select
Range("A1:D6").Select
Selection.Copy

'The macro works perfectly up to here. The data is on Excel Sheet1 A1:d6 and it needs to be pasted to the same range on Sheet1 of the PPT data sheet.

``如果我在瀏覽代碼時切換窗口,則可以看到已選擇並復制了數據。 只是粘貼部分不起作用。

ws.Range("A1").Paste

謝謝你們都張貼了這篇文章,因為這讓我很難找到自己! 這是代碼的清理版本,並進行了更改,因此您可以拖放並准備就緒(例如,聲明變量和調整以使代碼正常工作)

Sub test()

Dim ObjPPT As PowerPoint.Application
Dim ObjPresentation As PowerPoint.Presentation
Dim ObjSlide As PowerPoint.Slide
Dim mychart As PowerPoint.Chart
Dim wb As Workbook
Dim ws As Worksheet
Dim MainWorkbook As String

Set ObjPPT = CreateObject("PowerPoint.Application")
Set ObjPresentation = ObjPPT.Presentations.Add
ObjPresentation.ApplyTemplate ("C:\Documents and Settings\ewnym5s\My Documents\Tools\Clean PPT Page.potx")
Set ObjSlide = ObjPresentation.Slides.Add(1, 12)
Set mychart = ObjSlide.Shapes.AddChart(xlBarClustered, 200, 200, 500, 200).Chart

Set wb = mychart.ChartData.Workbook
Set ws = wb.Worksheets(1)
ws.ListObjects("Table1").Resize ws.Range("A1:D6")

MainWorkbook = ThisWorkbook.Name
Windows(MainWorkbook).Activate
Sheets("Sheet1").Select
Range("A1:D6").Select
Selection.Copy
ws.Range("A1:D6").Value = Range("A1:D6").Value

End Sub

您可以使用.value參數在不同范圍之間設置值。 盡管這只會設置單元格中的值,但不會保留任何格式。 如果僅是圖表數據,這無關緊要。 之后,您始終可以始終通過VBA應用格式設置。 設置值也比在Excel VBA中復制和粘貼要有效得多。

由於源和目標都是excel范圍,因此以下方法將起作用:

ws.Range("A1:D6").Value = Range("A1:D6").Value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM