使用VBA在Excel图表中制作轴标题

时间:2018-10-04 10:58:41

标签: excel vba charts

我用VBA创建一个excel图表,然后格式化轴标题和字体的大小。以下代码适用于水平轴

set arrow from graph 0.5, graph 1 to second 1, second 2 head

但是,垂直轴的类似代码

cht.SetElement msoElementPrimaryCategoryAxisTitleAdjacentToAxis
cht.Axes(xlCategory, xlPrimary).AxisTitle.Text = "Factor of Safety"
cht.Axes(xlCategory, xlPrimary).AxisTitle.Format.TextFrame2.TextRange.Font.Size = 15

导致错误424“需要对象”。你能告诉我发生了什么事吗?

2 个答案:

答案 0 :(得分:0)

在最新版本的Excel中,可以将SetElement与命名常量一起使用,以向图表中添加要素。 似乎容易些,但实际上却不那么直观,而且可能不可靠。

所以代替这个:

cht.SetElement msoElementPrimaryValueAxisTitleAdjacentToAxis
cht.Axes(xlValue, xlPrimary).AxisTitle.Text = "Depth [mCD]"
cht.Axes(xlValue, xlPrimary).AxisTitle.Format.TextFrame2.TextRange.Font.Size = 15

执行此操作:

cht.Axes(xlValue, xlPrimary).HasTitle = True
cht.Axes(xlValue, xlPrimary).AxisTitle.Text = "Depth [mCD]"
cht.Axes(xlValue, xlPrimary).AxisTitle.Format.TextFrame2.TextRange.Font.Size = 15

答案 1 :(得分:0)

扩展 Jon Peltier 答案的另一个答案:

Charts.Add
With ActiveChart        
    .Axes(xlValue, xlPrimary).HasTitle = True ' must set outside with       
    With .Axes(xlValue, xlPrimary)      
        .AxisTitle.Text = "Depth [mCD]"
        .AxisTitle.Format.TextFrame2.TextRange.Font.Size = 15       
    End With        
End With