由于它在Excel和Powerpoint中都可用,请通过明确声明它来避免混淆代码:)
我创建了一个VBA脚本,用于将数据从Excel传输到PowerPoint(均为2016版),并希望检查幻灯片x上是否存在特定的形状,然后将其复制到幻灯片y。
[(C0])中也提到的通用解决方案确实产生了>>
“运行时错误'424':必需对象”
在Existence of shapes in Powerpoint的功能的第3行中>
For Each oSh in myPresentation.Slides(4).Shape
称为“ ShapeExists”的代码:
Function ShapeExists(ByVal ShapeName as String) as Boolean
Dim oSh as Shape
For Each oSh in myPresentation.Slides(4).Shapes
If oSh.Name = ShapeName Then
ShapeExists = True
Exit Function
End If
Next
End Function
我已经在参考文献和其他参考文献中添加了Powerpoint 2016对象库。键入 If ShapeExists("MSDreieck2") Then
myPresentation.Slides(4).Shapes("MSDreieck2").Copy
mySlide5.Shapes.PasteSpecial DataType:=0
Else
GoTo NACHZEITSTRAHLCOPY:
End If
时,它会建议列表中包含两个不同的“形状”项(一个用于Excel,一个用于PP),但对于我使用的错误没有影响。
就我而言,由于在每次运行时都会重新分配Shape索引,并且在我的情况下Slide x上Shape的数量并不总是相同,因此没有其他方法可以检查特定的Shape是否存在。] >
我将非常感谢每个建议。谢谢
我创建了一个VBA脚本,用于将数据从Excel传输到PowerPoint(均为2016版),并希望检查幻灯片x上是否存在特定的形状,然后将其复制到幻灯片y。常见解决方案...
由于它在Excel和Powerpoint中都可用,请通过明确声明它来避免混淆代码:)
dim oSh as Shape
或
Dim oSh As PowerPoint.Shape
如果未显式声明它,则它将引用本机应用程序中的对象,在本例中为Excel。
Dim oSh As Object
执行后期绑定,让应用程序在运行时决定。
由于它在Excel和Powerpoint中都可用,请通过明确声明它来避免混淆代码:)