Excel 使用目的地主题&;嵌入工作簿(h)

Excel 使用目的地主题&;嵌入工作簿(h),excel,vba,powerpoint-2010,Excel,Vba,Powerpoint 2010,我正在尝试复制工作簿工作表中创建的图表对象,并将其粘贴到powerpoint 2010幻灯片中,使其成为包含数据的独立Excel图表(嵌入) 当我手动操作时,即: 复制工作表中存在的图表对象 转到Powerpoint幻灯片 单击粘贴特殊并选择“使用目标主题和嵌入工作簿(H)” 在Powerpoint中的图表对象上单击鼠标右键,然后单击“编辑数据” 然后我得到了一个新的独立工作簿,标题为“MicrosoftExcel中的图表”,它显示了图表和数据。我无法复制使用Excel VBA获得标题为“Mic

我正在尝试复制工作簿工作表中创建的图表对象,并将其粘贴到powerpoint 2010幻灯片中,使其成为包含数据的独立Excel图表(嵌入)

当我手动操作时,即:

  • 复制工作表中存在的图表对象
  • 转到Powerpoint幻灯片
  • 单击粘贴特殊并选择“使用目标主题和嵌入工作簿(H)”
  • 在Powerpoint中的图表对象上单击鼠标右键,然后单击“编辑数据”
  • 然后我得到了一个新的独立工作簿,标题为“MicrosoftExcel中的图表”,它显示了图表和数据。我无法复制使用Excel VBA获得标题为“Microsoft Excel中的图表”的新独立工作簿的情况。有人能帮忙吗

    假设工作表上有一个简单的柱状图,下面是代码:

    Option Explicit
    Sub doit()
    Dim Temp As Workbook
    Dim Rng As Range
    Dim ChtObj As ChartObject
    
    With ThisWorkbook.Sheets(1)
        Set ChtObj = .ChartObjects(1)
        With ChtObj
            .Copy
        End With
    
        Dim ppapp As Object
        Dim pppres As Object
        Dim ppslide As Object
    
        On Error Resume Next
        Set ppapp = GetObject(, "Powerpoint.Application")
    
        If ppapp Is Nothing Then
            Set ppapp = CreateObject("Powerpoint.Application")
        End If
        On Error GoTo 0
    
        Set pppres = ppapp.presentations.Add
        Set ppslide = pppres.Slides.Add(1, 12)
    
        With ppapp
            .Activate
            .Visible = msoTrue
            .ActiveWindow.viewtype = 1
        End With
    
        ChtObj.Copy
        ppapp.ActiveWindow.View.Paste
    
    End With
    End Sub
    

    PowerPoint对象模型中似乎没有相应的方法。。唯一的方法是调用功能区按钮本身:

    Application.CommandBars.ExecuteMso("PasteExcelChartDestinationTheme")
    

    顺便说一句:要查找功能区按钮列表,请搜索“Office 2010控件ID”。

    KazJaw,我编辑了我的帖子。请复习以上内容。我尝试过:ppslide.Shapes.PasteSpecial(11,0,0)'11=ppPasteShape或ppslide.Shapes.PasteSpecial 10,0,0'10=ppPasteOLEObject或ppapp.ActiveWindow.View.PasteSpecial 10,0,0,但没有帮助!你好任何人,有什么想法吗?我想这里没有人知道如何复制VBA中的步骤。我想这里很少有人知道如何做。但是你不鼓励给你支持-你在这里不投票,所以你不赞成答案。回到你的问题-一个技巧-搜索
    .pastespecial
    ,找到第3点。第4点是不可复制的-您可以通过VBA制作工作簿版本,因此在这种情况下不需要模拟右键单击。Kazjaw,如果清楚在哪里投票,我当然会投票。让我知道我需要点击投票的地方。至于第3点,VBA中的pastespecial似乎没有“使用目标主题和嵌入工作簿(H)”选项。至于第4点,我并不是试图复制右键单击,而是试图通过右键单击来显示chartobject在一个新的独立excel窗口中打开时的不同,该窗口的标题为“Microsoft excel中的图表”。我的问题是-这可以通过VBA复制吗?