用于主轴标签的Excelmacros

我试图写一个macros来统一图表格式。 我被困在我认为最简单的部分。 标记轴。 它不会标注主值轴(Y轴)。 我已经在2010年和2013年多次logging这个macros。什么是错的? 我运行macros,并在第3行进行debugging,就好像标签不存在一样。 只运行前两行certificate了这一点。 任何帮助?

ActiveChart.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis) Selection.Format.TextFrame2.TextRange.Characters.Text = "Primary Y-Axis" With Selection.Format.TextFrame2.TextRange.Characters(1, 14).ParagraphFormat .TextDirection = msoTextDirectionLeftToRight .Alignment = msoAlignCenter End With With Selection.Format.TextFrame2.TextRange.Characters(1, 14).Font .BaselineOffset = 0 .Bold = msoTrue .NameComplexScript = "+mn-cs" .NameFarEast = "+mn-ea" .Fill.Visible = msoTrue .Fill.ForeColor.RGB = RGB(0, 0, 0) .Fill.Transparency = 0 .Fill.Solid .Size = 10 .Italic = msoFalse .Kerning = 12 .Name = "+mn-lt" .UnderlineStyle = msoNoUnderline .Strike = msoNoStrike End With 

运行时错误的一个明显来源是依赖于logging的macros。 他们通常需要一些调整。 在你的情况下,我认为这个问题可能是轴的.HasTitle属性仍然设置为False ,当您尝试访问.AxisTitle属性时会引发该错误。

注意:您可以阅读本文以了解为什么SelectActivate方法有问题。

在这段代码中,我定义了一些variables来表示图表和轴,并确保.HasTitle属性为true。 没有遇到错误。 🙂

 Sub foo() Dim cht As Chart Dim ax As Axis Set cht = Sheet1.ChartObjects(1).Chart '# modify as needed cht.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis) '# set your axis in a variable Set ax = cht.Axes(xlValue, xlPrimary) '# Make sure your axis HAS a title ax.HasTitle = True With ax.AxisTitle.Format.TextFrame2.TextRange .Characters.Text = "Primary Y-Axis" With .Characters(1, 14).ParagraphFormat .TextDirection = msoTextDirectionLeftToRight .Alignment = msoAlignCenter End With End With End Sub