เกิดข้อผิดพลาดขณะคัดลอกและวางข้อมูลจาก PPT อื่น

ฉันกำลังพยายามคัดลอกสไลด์ 1 จาก PPT ภายนอกไปยัง PPT ปัจจุบันลงในหน้าบันทึกย่อ อย่างไรก็ตาม ฉันได้รับข้อความแสดงข้อผิดพลาดนี้:

สไลด์ (สมาชิกที่ไม่รู้จัก) : คำขอไม่ถูกต้อง คลิปบอร์ดว่างเปล่าหรือมีข้อมูลที่ไม่อาจวางที่นี่

PPT ภายนอกที่ฉันกำลังคัดลอกมีข้อมูลอยู่

สคริปต์ VBA:

Sub copySlide()
Dim objPresentation As Presentation

Set objPresentation = Presentations.Open("/path/slides.ppt")

objPresentation.Slides.Item(1).Copy
Presentations.Item(1).Slides.Paste

objPresentation.Close
End Sub

person Rahul Dagli    schedule 16.03.2017    source แหล่งที่มา
comment
จะไม่เป็นบรรทัดนี้: Presentations.Item(1).Slides.Paste ผิดเหรอ? คุณต้องการวางสไลด์ของคุณใน ActivePresentation หรือไม่?   -  person basslo    schedule 16.03.2017
comment
ใช่ ฉันต้องการคัดลอกสไลด์จาก PPT ภายนอกไปยัง PPT ที่เปิดอยู่ซึ่งฉันกำลังเรียกใช้แมโคร   -  person Rahul Dagli    schedule 16.03.2017
comment
@RahulDagli ดูคำตอบของฉันด้านล่าง แจ้งให้เราทราบหากได้ผลตามที่คุณตั้งใจไว้   -  person Shai Rado    schedule 16.03.2017


คำตอบ (1)


ลองใช้โค้ดด้านล่าง ฉันหวังว่าการนำเสนอของคุณที่ ("/path/slides.ppt") จะไม่ทำให้เกิดข้อผิดพลาด

ฉันเพิ่ม 2 ตัวเลือก ไม่ว่าจะวางไว้ที่ส่วนท้ายหรือเป็นสไลด์ที่สอง - คุณสามารถแก้ไขบรรทัด Paste ได้อย่างง่ายดาย

รหัส

Sub copySlide()

Dim MyPres          As Presentation
Dim objPresentation As Presentation

Set MyPres = ActivePresentation
Set objPresentation = Presentations.Open("/path/slides.ppt")

objPresentation.Slides(1).Copy
'MyPres.Slides.Paste MyPres.Slides.Count + 1 ' <-- place it at the end
MyPres.Slides.Paste 2 ' <-- place it as the second slide

objPresentation.Close
Set objPresentation = Nothing ' clear object

End Sub
person Shai Rado    schedule 16.03.2017
comment
ฉันลองใช้รหัสของคุณแล้ว แต่ยังคงได้รับข้อผิดพลาด ข้อผิดพลาดเดียวกันในบรรทัดนี้ MyPres.Slides.Paste 2 ' <-- place it as the second slide - person Rahul Dagli; 16.03.2017
comment
@RahulDagli มี ' ในบรรทัดโค้ดใช่ไหม ? ระหว่าง MyPres.Slides.Paste 2 และความคิดเห็นหลังจากนั้น ? - person Shai Rado; 16.03.2017
comment
ใช่ ฉันคัดลอกและวางโค้ดของคุณทุกประการ เฉพาะเส้นทางที่ฉันเปลี่ยนเท่านั้น - person Rahul Dagli; 16.03.2017
comment
@RahulDagli จะเกิดอะไรขึ้นถ้าคุณลองสายมาก่อน ลองใช้ 'MyPres.Slides.Paste MyPres.Slides.Count + 1 ดูว่ามันวางจนสุดหรือไม่ - person Shai Rado; 16.03.2017
comment
@RahulDagli ฉันไม่แน่ใจว่าคุณคัดลอกสไลด์ไม่สำเร็จ จะเกิดอะไรขึ้นถ้าคุณเพิ่ม MsgBox objPresentation.Name & " has " & objPresentation.Slides.Count ไว้ท้ายบรรทัด Set objPresentation = Presentations.Open - person Shai Rado; 16.03.2017
comment
ให้เราสนทนาต่อในการแชท - person Rahul Dagli; 16.03.2017
comment
แก้แล้ว! เคล็ดลับคือการเปิดมุมมองปกติก่อน เรียกใช้มาโคร จากนั้นสลับไปที่มุมมองบันทึกย่อ - person Rahul Dagli; 16.03.2017