使用Office365时,CommandBars.ExecuteMso(“ PasteSourceFormatting”)无法将Excel表格式保留为Powerpoint

时间:2019-06-07 11:04:10

标签: excel vba powerpoint powerpoint-vba

我正在使用VBA ppapp.CommandBars.ExecuteMso ("PasteSourceFormatting")命令将粘贴表从Excel复制到Powerpoint。 My Excel表的每个单元格包含一些文本,并且每个单元格文本的字体颜色是红色和绿色的组合(例如,第一个单元格文本是“ Tom,Jim”,Tom用红色字体显示,Jim用绿色字体显示。)当我使用上述命令将此表粘贴到powerpoint中时,字体颜色格式消失了-基本上在粘贴Powerpoint之后,对于每个单元格,整个文本的字体颜色均为Excel中起始单词的字体颜色(在我们的文本中例如,“ Tom,Jim”全部使用Red字体)。奇怪的是,此命令在MS OFFICE 2013版本中运行良好,而在OFFICE365中则无法运行。我被困住了,将不胜感激。预先感谢。

我也曾尝试用ppapp.ActiveWindow.View.PasteSpecial ppPasteDefault替换命令,但这给了同样的问题(在2013版中工作,而在OFFICE365中不工作)。当我手动将表格从Excel复制粘贴到Powerpoint时,这是同样的问题。

执行此操作的部分代码:

sub exceltoppt()
    Dim sourcebook
    sourcebook = ActiveWorkbook.Name

    Dim ppapp as Powerpoint.Application
    Dim pppres as Powerpoint.Presentation

    Set ppapp = CreateObject("Powerpoint.Application")
    ppapp.Visible = msoCTrue

    Set pppres = ppapp.Presentations.Open("Sample Presentation.pptx")
    Set pppres = ppapp.ActivePresentation

    Workbooks(sourcebook).Activate

    Range("TargetRange").Select

    Selection.Copy

    pppres.Slides(1).Select
    pppres.Slides(1).Shapes("Table1").Table.cell(1,1).Shape.Select
    ppapp.CommandBars.ExecuteMso ("PasteSourceFormatting")
End sub

我希望Excel表保留其字体颜色格式(每个单元格中红色和绿色字体的混合),但是在Powerpoint中,每个单元格文本只有一种颜色(Excel表中起始单词的颜色)

0 个答案:

没有答案