用于主轴标签的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
属性时会引发该错误。
注意:您可以阅读本文以了解为什么Select
和Activate
方法有问题。
在这段代码中,我定义了一些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