【问题标题】:Open Power Point chart data in Excel在 Excel 中打开 Powerpoint 图表数据
【发布时间】:2017-05-18 13:25:41
【问题描述】:

我正在尝试创建一个宏来清理 power point 中图表后面的 Excel 工作表,以便只有图表中使用的数据存在,没有公式。

我已经拼凑了这个,当我在 Excel 中打开图表数据时,它可以工作,但我希望我可以创建一个宏,循环遍历工作簿中的每个图表并为我在 Excel 中打开图表数据,所以我可以对每个执行以下操作。

Sub ChartCleaningPP()

'Paste values of table

    Range("Table1[#All]").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Dim Cell As Range

'clear other cells

For Each Cell In ActiveSheet.UsedRange
If Intersect(Cell, Selection) Is Nothing Then
Cell.Clear
End If
Next Cell

'remove hidden

For lp = 256 To 1 Step -1
If Columns(lp).EntireColumn.Hidden = True Then Columns(lp).EntireColumn.Delete Else
Next
For lp = 65536 To 1 Step -1
If Rows(lp).EntireRow.Hidden = True Then Rows(lp).EntireRow.Delete Else
Next

'close window

ActiveWindow.Close

End Sub

【问题讨论】:

    标签: vba excel charts powerpoint


    【解决方案1】:

    试试这个:

    Sub ChangeCharts()
    Dim ws As Worksheet
    Dim myChart As ChartObject
    
       For Each ws In ThisWorkbook.Worksheets
          For Each myChart In ws.ChartObjects
            'your code here
            'i.e Call ChartCleaningPP
            Next myChart
        Next ws
    End Sub
    

    编辑:(从 PP 运行 Excel Makro) 需要在 PP 中激活 MS Excel 库。

    Sub RunExcelMakro()
    Dim wk As Object
    Dim Path As String
    CreateObject ("Excel.Application")
    Set xlApp = New Excel.Application
    xlApp.Visible = True
    
    Path = "C:\Users\User\Desktop\F\1.xlsm" 'Edit Path
    Set wk = xlApp.Workbooks.Open(Path)
    
    xlApp.Run "YourMakro"
    
    xlApp.Quit
    End Sub
    

    编辑:

    Sub M1()
        Dim sld As Slide
        Dim sh As Shape
        Dim Path As String
    
        Dim xlApp As Object
        Set xlApp = CreateObject("Excel.Application")
        xlApp.Visible = True
    
        For Each sld In ActivePresentation.Slides
            For Each sh In sld.Shapes
                If sh.Type = msoLinkedOLEObject Then
                    With sh.LinkFormat
                        Path = .SourceFullName
                        xlApp.Workbooks.Open Path
    
                    End With
                End If
            Next sh
        Next sld
    End Sub
    

    【讨论】:

    • 谢谢,但这不起作用。我认为它可以在 Excel 工作表中工作,但我需要它用于 PowerPoint。在我的代码运行之前,它需要打开 PowerPoint 图表后面的 Excel 表格。
    • 立即尝试。是你现在想要的吗?
    • 如果你右键单击一个PowerPoint图表,你可以选择编辑数据>在excel中编辑数据,然后打开我需要打开的excel文件。我不知道这些的文件路径。我想要的是一个宏,可以在 PowerPoint 中打开它们中的每一个,100 个图表后面的 100 个 Excel 表,这样我就可以在每个表上运行代码。
    • 试试我的编辑,如果它有效,图表是链接的 excel 对象,否则它们只是普通图表(是的,他们可以有一个用于那里数据的 excel 表,但那不一样),就我而言知道没有办法用 vba 做到这一点。
    • 你可以打开一个,看看它们是否在同一个文件夹中,然后你可以循环浏览它们。
    猜你喜欢
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 2021-04-17
    相关资源
    最近更新 更多