Excel到PowerPoint导出,不通过VBA格式化Excel工作表

Excel到PowerPoint导出,不通过VBA格式化Excel工作表,vba,excel,powerpoint,Vba,Excel,Powerpoint,我已成功创建了一个VBA宏,可将各种图表和表格导出到PPT,但目前我遇到了以下问题: 将图表导出为PPT时,VBA代码中定义的格式也将应用于Excel工作表(尺寸、图例、标题)。有没有人能给我提供一些可能的提示,使上述选项仅在PPT中应用,而在Excel中保持不变 这是我迄今为止尝试过的代码: ActiveSheet.ChartObjects(1).Activate ActiveSheet.ChartObjects(1).Width = 380 ActiveSheet.ChartObjects(

我已成功创建了一个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
我很确定有一种替代方法可以做到这一点,但我还没有意识到


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

您可以跟踪设置并在完成后恢复

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