我希望smeone可以帮助我 . 我想从excel中获取dta并将其粘贴到功率点图表中,就像我手动但使用代码一样 . 我想自动创建一个标准的演示文稿,经常为不同的客户群创建 . (我正在使用SAS处理数据并将其从SAS转换为excel文件,每次都有相同的选项卡和格式)
我能够编写附加的宏,这只是第一次尝试虚拟日期,看看它是如何工作的,我从其他网络资源中大量复制 . 它一直工作到那时为止 . 它打开spower点,用我的模板cretres页面并添加一个正确类型的图表 . 它打开该图表的数据表 . 问题是我无法粘贴数据 .
我相信我没有正确引用Sorce excel表,因此VBA正在被cnofused(应该如此) . 有人可以说我是怎么做到的 .
最后,我可能会修改它以打开现有图表并粘贴新数据,因为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
2 回答
感谢你们发布这篇文章,因为这是我很难找到自己的东西!这是一个已清理的代码版本,其中进行了更改,以便您可以拖放它并准备好(例如声明变量和调整以使代码正常工作)
您可以使用.value参数设置不同范围之间的值 . 这只会设置单元格中的值,但不会保留任何格式 . 这不应该只是图表的数据 . 无论如何,您始终可以通过VBA应用格式 . 设置该值也比在Excel VBA中复制和粘贴更有效 .
由于源和目标都是excel范围,因此以下内容将起作用: