在早期版本的PPT中完美运行的代码在2016年停止工作。
当我尝试更改图表中形状的左侧属性时,出现Method left of object shape failed
错误。
我完全可以阅读.Left
属性。
我的想法已经用完了?我该怎么办?
Sub test11()
Dim sld As Slide
Dim objChart As Object
Dim shpBubble As Object
Set sld = ActivePresentation.Slides("ScatterPlot01_Purch6")
Set objChart = sld.Shapes("Chart01").Chart
sld.Select
objChart.Select
Set shpBubble = objChart.Shapes("P01")
'shpBubble.Select
Debug.Print shpBubble.Left, shpBubble.Visible
shpBubble.Left = 10
End Sub
答案 0 :(得分:2)
<强> 更新 强>
在PowerPoint 2010和2013中进行了测试,它在哪里工作,现在看起来像2016年的一个错误!
* END *
我设法通过手动向测试图表添加形状来重新创建PowerPoint 2016(PC)中的错误(选择图表然后单击格式 / 插入形状)和试图写入其中的几个属性,包括位置和格式,如更改填充颜色。所有都会产生错误。
也许一种解决方法是使用.Delete方法删除所需的形状,然后在所需的大小和位置添加新形状。像这样:
Sub test11()
Dim sld As Slide
Dim objChart As Chart 'Object
Dim shpBubble As Shape 'Object
Set sld = ActivePresentation.Slides("ScatterPlot01_Purch6")
Set objChart = sld.Shapes("Chart01").Chart
sld.Select
objChart.Select ' this won't work as you can only select the parent shape sld.Shapes("Chart01")
With objChart
.Shapes("P01").Delete
.Shapes.AddShape msoShapeOval, 10, 10, 20, 20
End With
End Sub
挑战在于,因为新形状是以只读形式添加的,所以无法设置格式!