让我知道。我想解释了如何将答案标记为已接受。是的,这确实很奇怪,我看到类似的事情发生了——一旦我手动打开工作簿,宏就会运行以实时更新数据,而Excel屏幕不会闪烁。很奇怪。应该可以通过代码来完成这些步骤,但我还没有测试它是否会产生相同的结果。我认为应该,但

让我知道。我想解释了如何将答案标记为已接受。是的,这确实很奇怪,我看到类似的事情发生了——一旦我手动打开工作簿,宏就会运行以实时更新数据,而Excel屏幕不会闪烁。很奇怪。应该可以通过代码来完成这些步骤,但我还没有测试它是否会产生相同的结果。我认为应该,但,excel,powerpoint,vba,Excel,Powerpoint,Vba,让我知道。我想解释了如何将答案标记为已接受。是的,这确实很奇怪,我看到类似的事情发生了——一旦我手动打开工作簿,宏就会运行以实时更新数据,而Excel屏幕不会闪烁。很奇怪。应该可以通过代码来完成这些步骤,但我还没有测试它是否会产生相同的结果。我认为应该,但如果不是这样,我也不会感到惊讶 Sub Test() Excel.Application.Run "'" & "C:\myPath\" & "PPT Macro Test.xlsm'!Steps" ActiveP

让我知道。我想解释了如何将答案标记为已接受。是的,这确实很奇怪,我看到类似的事情发生了——一旦我手动打开工作簿,宏就会运行以实时更新数据,而Excel屏幕不会闪烁。很奇怪。应该可以通过代码来完成这些步骤,但我还没有测试它是否会产生相同的结果。我认为应该,但如果不是这样,我也不会感到惊讶
Sub Test()
    Excel.Application.Run "'" & "C:\myPath\" & "PPT Macro Test.xlsm'!Steps"
    ActivePresentation.UpdateLinks
End Sub
Sub Test()
    Excel.Application.Run "'" & "C:\myPath\" & "PPT Macro Test.xlsm'!Steps"
    ChangeChartData
End Sub

Sub ChangeChartData()

    Dim pptChart As Chart
    Dim pptChartData As ChartData
    Dim pptWorkbook As Object
    Dim sld As Slide
    Dim shp As Shape

    For Each sld In ActivePresentation.Slides
        For Each shp In sld.Shapes
            If shp.HasChart Then
                Set pptChart = shp.Chart
                Set pptChartData = pptChart.ChartData
                pptChartData.Activate
                Set pptWorkbook = pptChartData.Workbook
                On Error Resume Next
                'update first link
                pptWorkbook.UpdateLink pptWorkbook.LinkSources(1)
                On Error GoTo 0
                pptWorkbook.Close True
            End If
        Next
    Next

    Set pptWorkbook = Nothing
    Set pptChartData = Nothing
    Set pptChart = Nothing

End Sub
Sub Test()
    Excel.Application.Run "'" & "C:\myPath\" & "PPT Macro Test.xlsm'!Steps"
End Sub
Set pres = Presentations("Chart.pptm") 'ActivePresentation, modify as needed.
' Make sure you reference correct shape name on the next line:
pres.Slides(1).Shapes("Chart1").LinkFormat.Update
For Each sld In ActivePresentation.Slides
    For Each shp In sld.Shapes
        If shp.HasChart Then
            Set pptChart = shp.Chart
            pptChart.LinkFormat.Update
        End If
    Next
Next
Sub Test()
    Excel.Application.Run "'" & "C:\myPath\" & "PPT Macro Test.xlsm'!Steps"
    Slide1.Shapes(1).LinkFormat.Update
End Sub