ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 粘贴幻灯片的时候运行时错误'-2147188160(80048240)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-10-15 13:05 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 976190982 于 2021-10-16 10:59 编辑

粘贴幻灯片的时候运行时错误'-2147188160(80048240)
附件地址:https://wwi.lanzoui.com/isxENvd9kad     由于附件过大,就发地址了。


问题 :在ActivePresentation.Slides.Paste (ActivePresentation.Slides.Count + 1) '粘贴至最后一张之后   这里会出现  运行时错误'-2147188160(80048240)
问题二、有时候页数也不对。

第一次写PPT的代码,EXCEL都还不是很了解,原贴是https://www.zhihu.com/question/393872545这个老师的,根据他提供的代码修改成我想要的代码。单步运行的时候没有问题,播放模式有时候就会出错。求老师们帮我看看,对PPT实在的不了解。
代码如下:
  1. Sub PPT批量插入幻灯片图片文本框()
  2.     Dim pptPre As Presentation
  3.     Dim p, C As Long
  4.     Dim n As Integer
  5.     Dim myPath As String
  6.     Dim appExcel As Object
  7.     Dim myexcel As Object
  8.     Dim mysheet As Object
  9.     Dim rcount As Long
  10.     '    On Error Resume Next
  11.     Set pptPre = ActivePresentation
  12.     myPath = ActivePresentation.Path & "\图片" '图片位置
  13.     Set appExcel = CreateObject("Excel.Application") '创建excel对象
  14.     Set myexcel = appExcel.Workbooks.Open(ActivePresentation.Path & "\数据.xlsx") '打开工作表
  15.     Set mysheet = myexcel.sheets("Sheet1") '创建工作表对象
  16.     rcount = mysheet.Cells(mysheet.Rows.Count, "A").End(3).Row '获取工作表最后一行行号
  17.     For p = 2 To rcount '从第2行到最后一行
  18.         If Dir(myPath & mysheet.Cells(p, "A").Value & ".jpg") <> "" Then '判断图片文件是否存在
  19.             n = n + 1
  20.             ActivePresentation.Slides(1).Copy '复制第一张幻灯片
  21.             ActivePresentation.Slides.Paste (ActivePresentation.Slides.Count + 1) '粘贴至最后一张之后
  22.             pptPre.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture FileName:=myPath & _
  23.             mysheet.Cells(p, "A").Value & ".jpg", LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _
  24.             Left:=25, Top:=150, Width:=275, Height:=294 '插入图片,设置坐标及长宽
  25.             '产品名称
  26.             With ActivePresentation.Slides(ActivePresentation.Slides.Count)
  27.                 With .Shapes.AddTextbox(msoTextOrientationHorizontal, 124, 18, 300, 10) '文本框坐标及长宽
  28.                     .TextFrame.TextRange.Font.Size = 18 '字号
  29.                     .TextFrame.TextRange.Text = mysheet.Cells(p, 2).Value '文本内容
  30.                 End With
  31.             End With
  32.             '日常价格
  33.             With ActivePresentation.Slides(ActivePresentation.Slides.Count)
  34.                 With .Shapes.AddTextbox(msoTextOrientationHorizontal, 576, 16, 300, 10) '文本框坐标及长宽
  35.                     .TextFrame.TextRange.Font.Size = 18 '字号
  36.                     .TextFrame.TextRange.Text = mysheet.Cells(p, 3).Value '文本内容
  37.                 End With
  38.             End With
  39.             '店铺名称
  40.             With ActivePresentation.Slides(ActivePresentation.Slides.Count)
  41.                 With .Shapes.AddTextbox(msoTextOrientationHorizontal, 835, 15, 300, 10) '文本框坐标及长宽
  42.                     .TextFrame.TextRange.Font.Size = 14 '字号
  43.                     .TextFrame.TextRange.Text = mysheet.Cells(p, 4).Value '文本内容
  44.                 End With
  45.             End With
  46.             '物流
  47.             With ActivePresentation.Slides(ActivePresentation.Slides.Count)
  48.                 With .Shapes.AddTextbox(msoTextOrientationHorizontal, 111, 62, 300, 10) '文本框坐标及长宽
  49.                     .TextFrame.TextRange.Font.Size = 14 '字号
  50.                     .TextFrame.TextRange.Text = mysheet.Cells(p, 5).Value '文本内容
  51.                 End With
  52.             End With
  53.             '几天发货
  54.             With ActivePresentation.Slides(ActivePresentation.Slides.Count)
  55.                 With .Shapes.AddTextbox(msoTextOrientationHorizontal, 313, 62, 300, 10) '文本框坐标及长宽
  56.                     .TextFrame.TextRange.Font.Size = 14 '字号
  57.                     .TextFrame.TextRange.Text = mysheet.Cells(p, 6).Value '文本内容
  58.                 End With
  59.             End With
  60.             '直播价格
  61.             With ActivePresentation.Slides(ActivePresentation.Slides.Count)
  62.                 With .Shapes.AddTextbox(msoTextOrientationHorizontal, 576, 61, 300, 10) '文本框坐标及长宽
  63.                     .TextFrame.TextRange.Font.Size = 14 '字号
  64.                     .TextFrame.TextRange.Text = mysheet.Cells(p, 7).Value '文本内容
  65.                 End With
  66.             End With
  67.             '库存情况
  68.             With ActivePresentation.Slides(ActivePresentation.Slides.Count)
  69.                 With .Shapes.AddTextbox(msoTextOrientationHorizontal, 838, 59, 300, 10) '文本框坐标及长宽
  70.                     .TextFrame.TextRange.Font.Size = 14 '字号
  71.                     .TextFrame.TextRange.Text = mysheet.Cells(p, 8).Value '文本内容
  72.                 End With
  73.             End With
  74.             '材质
  75.             With ActivePresentation.Slides(ActivePresentation.Slides.Count)
  76.                 With .Shapes.AddTextbox(msoTextOrientationHorizontal, 312, 138, 300, 10) '文本框坐标及长宽
  77.                     .TextFrame.TextRange.Font.Size = 14 '字号
  78.                     .TextFrame.TextRange.Text = mysheet.Cells(p, 9).Value '文本内容
  79.                 End With
  80.             End With
  81.             '尺码
  82.             With ActivePresentation.Slides(ActivePresentation.Slides.Count)
  83.                 With .Shapes.AddTextbox(msoTextOrientationHorizontal, 87, 485, 300, 10) '文本框坐标及长宽
  84.                     .TextFrame.TextRange.Font.Size = 14 '字号
  85.                     .TextFrame.TextRange.Text = mysheet.Cells(p, 10).Value '文本内容
  86.                 End With
  87.             End With
  88.         End If
  89.     Next p
  90.     myexcel.Close
  91.     Set pptPre = Nothing
  92.     Set appExcel = Nothing
  93.     Set myexcel = Nothing
  94.     Set mysheet = Nothing
  95.     MsgBox "全部PPT已添加完成,若要外发请删除第一页模板页!!", vbExclamation + vbOKOnly, "提示"
  96. End Sub

复制代码

解决方法:
帮忙ActiveWindow.view.paste 错误_百度知道 (baidu.com)







TA的精华主题

TA的得分主题

发表于 2022-2-26 15:13 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-21 18:27 , Processed in 0.040733 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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