2017-07-27 82 views
2

我有一張工作表,我從表格生成圖表。使用圖表格式化

我想生成2個圖表。一個帶有絕對數字的圖表,以及其他與百分比相同的數據的圖表。

現在,爲此,我使用兩個代碼,只需添加一行以Y.axis百分比形式生成圖表即可。

我想定義我的圖表開始的列(例如:G7的圖表1)和G15的圖表2。 (我沒有這在我的代碼)

我還,想以限定用於我的圖表的長度,高度和寬度。(我沒有這在我的代碼)

這將是很好,如果你能幫我添加這個需求並在一個程序中完成。

Sub chartstatus() 

Dim rng As Range 
Dim cht As Object 

Set rng = ActiveSheet.Range("A2:E53") 

Set sh = ActiveSheet.Shapes.AddChart 
sh.Select 
Set cht = ActiveChart 
With cht 
    .SetSourceData Source:=rng 
    .ChartType = xlColumnClustered 
    cht.Axes(xlSecondary).TickLabels.NumberFormat = "0.0%" 
End With 

cht.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(255, 255, 255) '<~~ Red 
cht.SeriesCollection(2).Format.Fill.ForeColor.RGB = RGB(255, 0, 0) 
cht.SeriesCollection(3).Format.Fill.ForeColor.RGB = RGB(0, 255, 0) 
cht.HasTitle = True 
cht.ChartTitle.Text = "Result 2017" 

End Sub 

我使用相同的代碼,刪除線,以產生第二圖表

cht.Axes(xlSecondary).TickLabels.NumberFormat = "0.0%" 
+0

你能證明你的表中的數據?你結果圖表圖像? –

回答

2

如果使用ChartObject創建和定義圖表,然後修改其所有屬性(如位置和尺寸),則更容易。

下面的代碼將創建第一個圖表,將其放置在單元格「G7」中,並且我修改了它的尺寸以顯示您需要修改的屬性。

您可以爲第二個圖表添加另一個(使用簡單的複製>>粘貼)。

代碼

Option Explicit 

Sub chartstatus() 

Dim Rng As Range 
Dim ChtObj As ChartObject 

Set rng = ActiveSheet.Range("A2:E53") 

' use ChartObject instead of shape 
Set ChtObj = ActiveSheet.ChartObjects.Add(100, 100, 500, 500) '<-- default dimension and location >> can modify later 
With ChtObj 
    .Chart.ChartType = xlColumnClustered 
    .Chart.SetSourceData Rng 

    With .Chart 
     .Axes(xlSecondary).TickLabels.NumberFormat = "0.0%" 

     .SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(255, 255, 255) '<~~ Red 
     .SeriesCollection(2).Format.Fill.ForeColor.RGB = RGB(255, 0, 0) 
     .SeriesCollection(3).Format.Fill.ForeColor.RGB = RGB(0, 255, 0) 
     .HasTitle = True 
     .ChartTitle.Text = "Result 2017" 
    End With 

    ' set position of the chart to Cell G7 
    .Top = Range("G7").Top 
    .Left = Range("G7").Left 

    ' change the dimensions of the chart 
    With .Chart.ChartArea 
     .Width = 1060 
     .Height = 420 
    End With 
End With 

End Sub 
+0

我可以複製粘貼,但我不需要第二張圖表的百分比我的軸 – Jenny

+0

@Jenny您是否能夠在第二張圖表上運行我的代碼? –

+0

它的工作原理,謝謝 – Jenny