2017-05-05 4 views
0

私は、Excelからのデータを使用して、以下のコードを使用してPowerPointのチャートバックエンドにそれを貼り付け、私のスライドの数を更新しようとしています。トランスポーズペーストコピーした範囲

Sub updateSlides() 
    Application.DisplayAlerts = False 
    Dim xlApp, xlWorkBook, xlSheet As Object 

    Set xlApp = CreateObject("Excel.Application") 
    ' Not transposing 
    xlApp.DisplayAlerts = Flase 
    xlApp.Visible = True 

    Set xlWorkBook = xlApp.Workbooks.Open("ExcelFilePath") 
    Set xlSheet = xlWorkBook.Sheets("SheetName") 

    For i = 1 To 9 
    With ActivePresentation.Slides(i) 
     Set charts = .Shapes("Chart 37").Chart.ChartData 
     charts.Activate 
     Set chartData = charts.Workbook.Sheets("Sheet1") 
     xlSheet.Range(xlSheet.Cells(2 + i, 2), xlSheet.Cells(2 + i, 3)).copy 
     chartData.Range("B8").PasteSpecial Paste:=-4163 
     ' I need to transpose the copied data here' 
     charts.Workbook.Close 
    End With 
    If i < 9 Then 
     ActiveWindow.View.GotoSlide Index:=ActiveWindow.Selection.SlideRange.Duplicate.SlideIndex 
    End If 
    Next i 

    xlApp.Quit 
    xlApp.DisplayAlerts = True 
    Set xlApp = Nothing 

    ' ActivePresentation.Save 

    Application.DisplayAlerts = True 

End Sub 

20行目で、コピーしたデータを転置し、指定された宛先範囲に貼り付ける必要があります。 助けを頂ければ幸いです。

答えて

1

Transposeパラメータを使用してみてください:

chartData.Range("B8").PasteSpecial Paste:=-4163, Transpose:=True 

はまた、タイプミスを修正:

xlApp.DisplayAlerts = False ' <--- Not Flase 
+0

ありがとうございました。 codwは動作します。 –