2016-08-23 19 views
0

私はチャートを画像としてコピーし、選択せずに別のシートに貼り付けるようにしています。ただし、画像を範囲に貼り付けるようには見えません。Excelチャートを画像としてコピーして他のシートの範囲に貼り付けてください

Dim Range_DriverLookup As Range, RowCounter_DriverLookup As Long 
Dim Count_DeliveredServicesNumber As Long, Counter_DeliveredServicesNumber As Long 
Dim Cht_SitePotential As ChartObject 
Dim Cht_Top5 As ChartObject 
Dim Cht_RegionalPeerGroup As ChartObject 
Dim PvtTbl_SitePotential As PivotTable 
Dim PvtTbl_Top5 As PivotTable 
Dim PvtTbl_RegionalPeerGroup As PivotTable 
Dim Graph_PerformanceReport As Excel.Picture 

''''''''''''''''''''''''''''''''''''''''' 
' Assign ranges, pivottables and charts ' 
''''''''''''''''''''''''''''''''''''''''' 
Set Range_DriverLookup = ThisWorkbook.Worksheets(SheetDriverLookup.Name).ListObjects("DriverLookup").DataBodyRange 
Set PvtTbl_SitePotential = ThisWorkbook.Worksheets(SheetPerformanceReportLookup.Name).PivotTables("PivotTableSitePotential") 
Set PvtTbl_Top5 = ThisWorkbook.Worksheets(SheetPerformanceReportLookup.Name).PivotTables("PivotTableTop5") 
Set PvtTbl_RegionalPeerGroup = ThisWorkbook.Worksheets(SheetPerformanceReportLookup.Name).PivotTables("PivotTableRegionalPeerGroup") 
Set Cht_SitePotential = ThisWorkbook.Worksheets(SheetPerformanceReportLookup.Name).ChartObjects("ChartSitePotential") 
Set Cht_Top5 = ThisWorkbook.Worksheets(SheetPerformanceReportLookup.Name).ChartObjects("ChartTop5") 
Set Cht_RegionalPeerGroup = ThisWorkbook.Worksheets(SheetPerformanceReportLookup.Name).ChartObjects("ChartRegionalPeerGroup") 

''''''''''''''''''''''''''''''''''' 
' Initiate new performance report ' 
''''''''''''''''''''''''''''''''''' 
'// Clear previous graphs 
For Each Graph_PerformanceReport In ThisWorkbook.Worksheets(SheetPerformanceReport.Name).Pictures 
    Graph_PerformanceReport.Delete 
Next Graph_PerformanceReport 
'// Clear previous sheet setup, and initiate new 
Stop 
With ThisWorkbook.Worksheets(SheetPerformanceReport.Name) 
    '/ Unhide rows in PerformanceReport 
    .Cells.EntireRow.Hidden = False 
    '/ Clear previous "table of content" 
    .Range("TableOfContent").ClearContents 
    '/ Reset pagebreaks and set for new frontpage 
    .ResetAllPageBreaks 
    .Rows(71).PageBreak = xlPageBreakManual 
End With 

'// Set filters on frontpage graph 
PvtTbl_SitePotential.ClearAllFilters 
PvtTbl_SitePotential.PivotFields("Serviceline").AutoSort Order:=xlDescending, Field:="Potential Savings (Yearly) " 
PvtTbl_SitePotential.PivotFields("Serviceline").ShowDetail = False 
PvtTbl_SitePotential.PivotFields("Site").PivotFilters.Add Type:=xlCaptionEquals, Value1:=ThisWorkbook.Worksheets(SheetPerformanceReport.Name).Range("Site").Value 
PvtTbl_SitePotential.PivotFields("Serviceline").PivotFilters.Add _ 
Type:=xlValueIsGreaterThanOrEqualTo, DataField:=PvtTbl_SitePotential.PivotFields("Potential Savings (Yearly) "), Value1:=5000 

'// Create title for frontpage graph 
With Cht_SitePotential.Chart.ChartTitle 
     .Caption = ThisWorkbook.Worksheets(SheetPerformanceReport.Name).Range("Site") & " - Yearly Potential on Service Level" 
End With 

'// Paste frontpagegraph to PerformanceReport 
With Cht_SitePotential.Chart 
    .ChartArea.Copy 
End With 
ThisWorkbook.Worksheets(SheetPerformanceReport.Name).Range("D7:D7").PasteSpecial xlPasteValues 

コードの大部分で編集されています。私はより良い解像度チャートの画像が得られます"P1:P1"

ThisWorkbook.Worksheets(SheetPerformanceReport.Name).Range("P1:P1").PasteSpecial ppPasteEnhancedMetafile 

ppPasteEnhancedMetafile.Range("Frontpage_Graph")をシミュレートしたときに私のために働い

答えて

0

I'ts。

"P10:Z20"のような範囲を使用すると、P10がチャート画像のアンカーポイントとして使用されます。

+0

代わりに 'ppPasteEnhancedMetafile'を使用しようとすると、"変数が定義されていません " –

+0

@SebastianKoefoed残りの' Sub'コードを投稿できますか?最後に 'xlPasteValues'で私の行に戻ってきたら、エラーが出ますか? –

+0

貼り付け部分まですべてのコードを追加しました。私は 'xlPasteValues'でエラーが発生しません。 –

関連する問題