2017-07-27 59 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