我正在尝试编写一个宏来格式化图表以实现统一。我陷入了我认为最简单的部分。标记轴。它不会标记主值轴(y 轴)。我在2010年和2013年多次录制过这个宏。有什么问题吗?我运行该宏,它在第 3 行进行调试,几乎就像标签不存在一样。仅运行前两行就证明了这一点。有什么帮助吗?
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
运行时错误的一个明显来源是依赖于recorded宏。它们通常需要一些调整。就你而言,我认为问题可能在于轴'.HasTitle
属性仍设置为False
,当您尝试访问时,这会引发该错误.AxisTitle
特性。
NOTE:你可以阅读this了解为什么Select
and Activate
方法有问题。
在此代码中,我定义了一些变量来表示图表和轴,并确保.HasTitle
财产是真实的。没有遇到错误。 :)
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)