ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3723|回复: 8

[求助] 求教excel 数据导入ppt表格中

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-7-16 11:26 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
excel 数据导入ppt表格中,除了单个单个的赋值,还有没有其他方法!使用复制过去就变成图片了!
我的现有代码如下:


Sub 控制ppt()
Dim objPPT As Object
Dim objPrs As Object
Dim objChart As Object
Set objPPT = CreateObject("Powerpoint.application")
Set objPrs = objPPT.presentations.Open(ThisWorkbook.Path & "\控制.pptx")


objPrs.Slides(1).Shapes("标题 1").TextFrame.TextRange.Text = "第一个PPT控制"

objPrs.Slides(1).Shapes("副标题 2").TextFrame.TextRange.Text = Worksheets("sheet1").Range("A3").Value

objPrs.Slides(2).Shapes("表格 3").Table.Cell(1, 1).Shape.TextFrame.TextRange.Text = Worksheets("sheet1").Range("B7").Value

objPrs.Slides(2).Shapes("表格 3").Table.Cell(1, 2).Shape.TextFrame.TextRange.Text = Worksheets("sheet1").Range("C7").Value

objPrs.Slides(2).Shapes("表格 3").Table.Cell(1, 3).Shape.TextFrame.TextRange.Text = Worksheets("sheet1").Range("D7").Value

objPrs.Slides(2).Shapes("表格 3").Table.Cell(2, 1).Shape.TextFrame.TextRange.Text = Worksheets("sheet1").Range("B8").Value

objPrs.Slides(2).Shapes("表格 3").Table.Cell(2, 2).Shape.TextFrame.TextRange.Text = Worksheets("sheet1").Range("C8").Value

objPrs.Slides(2).Shapes("表格 3").Table.Cell(2, 3).Shape.TextFrame.TextRange.Text = Worksheets("sheet1").Range("D8").Value


objPrs.Save

objPrs.Close

objPPT.Quit

Application.ScreenUpdating = True

Set objPPT = Nothing

Set objPrs = Nothing

MsgBox "移动PPT报告数据更新完毕!"

End Sub


一个一个赋值太头痛了,有没有其他方法!将B7:D8数据 复制到 ppt“表格3”中!
求大神指导!

excel控制ppt.zip

51.1 KB, 下载次数: 199

TA的精华主题

TA的得分主题

发表于 2018-7-16 12:47 | 显示全部楼层
  1. Sub d()
  2. Dim pa, p, s, arr()
  3. arr = Sheet1.Range("b7").Resize(2, 3)
  4. Set pa = CreateObject("PowerPoint.Application")
  5. Set p = pa.Presentations.Open(ThisWorkbook.Path & "\控制.pptx")
  6. Set s = p.Slides(1)
  7. s.Shapes.AddTable UBound(arr), UBound(arr, 2)
  8. For i = 1 To UBound(arr)
  9.     For j = 1 To UBound(arr, 2)
  10.         s.Shapes(1).Table.Cell(i, j).Shape.TextFrame2.TextRange = arr(i, j)
  11.     Next
  12. Next
  13. p.Save: p.Close: pa.Quit
  14. End Sub
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-16 13:53 | 显示全部楼层

感谢帮助!谢谢!成功的帮我解决了问题!循环真是个好东西!

TA的精华主题

TA的得分主题

发表于 2018-7-16 14:24 来自手机 | 显示全部楼层
auto737 发表于 2018-7-16 13:53
感谢帮助!谢谢!成功的帮我解决了问题!循环真是个好东西!

一般情况下PPT是不用VBA控制的。PPT还是要手写的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-17 11:47 | 显示全部楼层
活在理想的世界 发表于 2018-7-16 14:24
一般情况下PPT是不用VBA控制的。PPT还是要手写的。

手写太多了!每个月都要做几十个报表!就是数据不一样!我用excel了透视数据,然后在写入ppt!这样就快多了!

TA的精华主题

TA的得分主题

发表于 2018-7-17 12:17 | 显示全部楼层
本帖最后由 活在理想的世界 于 2018-7-17 12:19 编辑
auto737 发表于 2018-7-17 11:47
手写太多了!每个月都要做几十个报表!就是数据不一样!我用excel了透视数据,然后在写入ppt!这样就快多 ...

呵呵,第一次看到有求助PPTVBA的,在你提问之前我还没用过PPT的VB语言呢。
VBA主要用在Excel&Access的上面(90%),Word上面也有一些,OUTLOOK上面也有一些,PPT用VBA真心第一次碰到,要不是的问题我还不知道PPTVBA跟WordVBA有这么大的关系。

TA的精华主题

TA的得分主题

发表于 2019-3-23 13:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这个还有没有前期的一些东西,想了解一下,但是提示错误

TA的精华主题

TA的得分主题

发表于 2019-10-20 21:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不错不错 学习了,循环是个好东西

TA的精华主题

TA的得分主题

发表于 2022-10-28 16:07 | 显示全部楼层
楼主想请问一下,ppt中的表格编号是怎么看的
objPrs.Slides(2).Shapes("表格 3").Table.Cell(1, 2).Shape.TextFrame.TextRange.Text = Worksheets("sheet1").Range("C7").Value

就是想修改代码中的表格3 我又不知道我的ppt中的表格是表格几
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-24 19:36 , Processed in 0.045083 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表