升级到 Office 2013 后出现对象必需错误
Object Required Error after upgrading to Office 2013
我有以下子程序可以将传递给的图表复制到 PowerPoint 幻灯片中。它用于根据 Excel 电子表格中的图表和数据构建 PowerPoint 平台。此代码在 Excel 2010 中运行良好。我刚刚升级到 Office 2013,现在 sr.LockAspectRatio = msoFalse
行出现 "Object Required" 错误。
Sub Copy_Chart(PPRes As PowerPoint.Presentation, SlideNumber As Integer, Chart As ChartObject, Top As Single, Left As Single, Height As Single, Width As Single)
Dim sr As PowerPoint.ShapeRange
Chart.Activate
ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture
Set sr = PPRes.Slides(SlideNumber).Shapes.Paste
sr.LockAspectRatio = msoFalse
sr.Top = Top
sr.Left = Left
sr.Height = Height
sr.Width = Width
End Sub
显然 Past
方法必须返回一个 ShapeRanges 数组。我不确定这是否一直如此,Office 2010 是否更宽容一些。因此,为了纠正这个问题,在引用 sr
时,我不得不像 sr(sr.Count)
那样做。下面的工作代码...
Sub Copy_Chart(PPRes As PowerPoint.Presentation, SlideNumber As Integer, Chart As ChartObject, Top As Single, Left As Single, Height As Single, Width As Single)
Dim sr As PowerPoint.ShapeRange
Chart.Activate
ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture
Set sr = PPRes.Slides(SlideNumber).Shapes.Paste
sr(sr.Count).LockAspectRatio = msoFalse
sr(sr.Count).Top = Top
sr(sr.Count).Left = Left
sr(sr.Count).Height = Height
sr(sr.Count).Width = Width
End Sub
我有以下子程序可以将传递给的图表复制到 PowerPoint 幻灯片中。它用于根据 Excel 电子表格中的图表和数据构建 PowerPoint 平台。此代码在 Excel 2010 中运行良好。我刚刚升级到 Office 2013,现在 sr.LockAspectRatio = msoFalse
行出现 "Object Required" 错误。
Sub Copy_Chart(PPRes As PowerPoint.Presentation, SlideNumber As Integer, Chart As ChartObject, Top As Single, Left As Single, Height As Single, Width As Single)
Dim sr As PowerPoint.ShapeRange
Chart.Activate
ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture
Set sr = PPRes.Slides(SlideNumber).Shapes.Paste
sr.LockAspectRatio = msoFalse
sr.Top = Top
sr.Left = Left
sr.Height = Height
sr.Width = Width
End Sub
显然 Past
方法必须返回一个 ShapeRanges 数组。我不确定这是否一直如此,Office 2010 是否更宽容一些。因此,为了纠正这个问题,在引用 sr
时,我不得不像 sr(sr.Count)
那样做。下面的工作代码...
Sub Copy_Chart(PPRes As PowerPoint.Presentation, SlideNumber As Integer, Chart As ChartObject, Top As Single, Left As Single, Height As Single, Width As Single)
Dim sr As PowerPoint.ShapeRange
Chart.Activate
ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture
Set sr = PPRes.Slides(SlideNumber).Shapes.Paste
sr(sr.Count).LockAspectRatio = msoFalse
sr(sr.Count).Top = Top
sr(sr.Count).Left = Left
sr(sr.Count).Height = Height
sr(sr.Count).Width = Width
End Sub