Есть ли способ зарезервировать порядок, в котором эти диаграммы отображаются в PowerPoint? - PullRequest
0 голосов
/ 08 июля 2019

Проблема, которую я пытаюсь решить, заключается в автоматизации копирования и вставки из Excel в PowerPoint, что в настоящее время занимает много времени, поскольку мы имеем дело с большим количеством диаграмм на разных листах. Поэтому я провел некоторое онлайн-исследование, чтобы узнать, пытался ли кто-то еще или успешно справился с этой задачей, и вот плоды этого исследования. Тем не менее, он не полностью удовлетворяет моим целям, потому что, несмотря на то, что он успешно копирует и вставляет в PowerPoint, порядок запутался, так как он вставляется из самых старых в новейшие.

Я пытался использовать создание цикла, который начинается с последнего листа до первого, но с несколькими диаграммами на листе все еще портится порядок, в котором я хотел бы видеть отображаемые диаграммы.

Sub chart_deliveryReverse()

    'declaring all of the objects that will be used
    Dim objPP, objPPFile, mySlide, myShape As Object
    Dim DestinationPPT, button As String
    Dim sht As Worksheet
    Dim charts As Long
    Dim counter, counter1 As Integer
    Dim Xchart As Excel.ChartObject

    'Message Box with a message giving the user Feedback
    button1 = MsgBox("Creating PowerPoint")

    'assign the objPP to powerPoint App
    Set objPP = CreateObject("PowerPoint.Application")
    'make it visible in the screen
    objPP.Visible = True

    'open specific powerPoint presentation
    DestinationPPT = "location of powerPoint"
    Set objPPFile = objPP.Presentations.Open(DestinationPPT)

    'Loop that start from beginning to ended
    For counter = 1 To Worksheets.Count Step 1

    'Commnented loop that starts at the last sheet to the beginning
    'For counter = Worksheets.Count To 1 Step -1

        Set sht = Worksheets(counter)

        'Locate Excel charts to paste into the new PowerPoint presentation
        For Each Xchart In sht.ChartObjects

                'Copy each Excel chart and paste it into PowerPoint
                sht.Activate
                Xchart.Select
                ActiveChart.ChartArea.Copy

                'Customizes the powerPoint first number being where to start inserting slides and second number the layout
                Set mySlide = objPPFile.Slides.Add(2, 11) '11 = ppLayoutTitle
                Set myShape = mySlide.Shapes(mySlide.Shapes.Count)

                mySlide.Shapes.PasteSpecial DataType:=6
                objPP.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
                objPP.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True

                mySlide.Shapes(1).TextFrame.TextRange.Text = Xchart.Chart.ChartTitle.Text

                'Align the lastest stored shape
                myShape.Left = 100
                myShape.Top = 50
                Next
            Next
    'Next

    ' Clean up
    Set objPP = Nothing
    Set objPPFile = Nothing
    Set mySlide = Nothing

End Sub

Открывает указанную точку PowerPoint и заполняет ее диаграммами из листов Excel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...