Excel到PowerPoint导出,而无需通过VBA格式化Excel工作表

时间:2018-07-30 10:16:26

标签: excel vba excel-vba powerpoint-vba

我设法创建了一个VBA宏,该宏可将各种图表导出到PPT,但是,目前我遇到以下问题:

将图表导出到PPT时,VBA代码中定义的格式也将在Excel工作表中应用(尺寸,图例,标题)。有人可以通过仅在PPT中应用上述选项但在Excel中保持不变的方式向我提供可能的提示吗?

这是我到目前为止尝试过的代码:

ActiveSheet.ChartObjects(1).Activate
ActiveSheet.ChartObjects(1).Width = 380
ActiveSheet.ChartObjects(1).Height = 125
ActiveSheet.ChartObjects(1).Border.LineStyle = xlNone
'ActiveChart.HasTitle = False
'ActiveChart.HasLegend = False   
Set cht = ActiveSheet.ChartObjects(1).Chart
With cht
    .HasLegend = False
    .HasTitle = False
End With
Set activeSlide = newPowerPoint.ActivePresentation.Slides(newPowerPoint.ActivePresentation.Slides.Count)
    ActiveChart.ChartArea.Copy
    activeSlide.Shapes.PasteSpecial(DataType:=ppPasteMetafilePicture).Select
    newPowerPoint.ActiveWindow.Selection.ShapeRange.Left = 90
    newPowerPoint.ActiveWindow.Selection.ShapeRange.Top = 138

我很确定有另一种方法可以做到这一点,但是我还不知道。

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以跟踪设置并在完成后还原。

acW = ActiveSheet.ChartObjects(1).Width
acH = ActiveSheet.ChartObjects(1).Height
acBLS = ActiveSheet.ChartObjects(1).).Border.LineStyle

' your code

ActiveSheet.ChartObjects(1).Width = acW
ActiveSheet.ChartObjects(1).Height = acH
ActiveSheet.ChartObjects(1).Border.LineStyle = acBLS