我可能在我的宏记录器中有一个错误,因为当我尝试记录xlvalues轴上的颜色变化时,没有记录。 我需要做的是设置一个渐变径向颜色,有两种不同的灰色和不同的透明度。
我正在使用此代码设置我的图表:
ActiveSheet.Shapes.AddChart.Select
With ActiveChart
.ChartType = xlRadar
.SetSourceData Source:=Range(StartCell, StopCell) ' Those contain a range of interesting data
With .SeriesCollection(1)
.Name = "=""Line 1"""
.Format.Line.Weight = 1.5
End With
With .SeriesCollection(2)
.Name = "=""Line 2"""
.Format.Line.Weight = 1.5
.Format.Line.DashStyle = msoLineDash
End With
.SetElement (msoElementChartTitleAboveChart)
.ChartTitle.Text = Left(Cells(StartCell.Row, 1).Text, 2) & "." & Mid(Cells(StartCell.Row, 1).Text, 3, 1) & " GHz"
With .Axes(xlValue)
.TickLabels.NumberFormat = "# ""dB"""
.Border.ColorIndex = 3 ' <- This is yet to be modified
End With
End With
我该怎么做?我认为所有可以在excel中完成的,也可以在vba中以编程方式完成...
答案 0 :(得分:1)
我认为你不会对我的答案感到满意,但现在这样。
这似乎是MS从未修复的错误。
如果您转到对象浏览器或本地窗口,那么几乎没有关于轴的信息。 Format.Line
属性,可让您操作渐变。录制宏时观察,无论我在该对话框上采取什么手动操作,录像机都只记录.Visible = msoTrue
。
以下是我希望得到的结果:
虽然你可以操纵轴&#39; .Format.Fill
渐变,在视觉上仅显示影响轴值标签,而不是轴线本身。
我观察到线Shapes
的相同限制,有时可以非常类似于轴线使用。没有骰子,这是同样的问题:你可以手动完成,但是录音机什么都不产生,对象浏览器没有显示任何相关属性。
MS关于Axis.Format
的文档是even worse!
这似乎是一个长期存在的问题
这是Jon Peltier lamenting this problem over 7 years ago。与许多形状相关的渐变填充在2007年是新的。似乎它们在该版本中从未真正使其变得强大,也从未修复它。
我刚浏览了对象浏览器和2007年的在线帮助。 列出了一些新东西,比如LinearGradient和ColorStops, 这是2007年的新功能。但是,这些都与Line无关 或LineFormat,Line和LineFormat没有新属性或 方法。 MSDN中的VBA语言参考尚未包含 Office 2007.我还没有找到任何解释如何 程序到新的形状。缺乏宏录制器功能 提供这种新对象模型的见解是非常不幸的。
另一个微软MVP describing this as essentially hopeless,就VBA而言。这适用于PowerPoint,但一般功能和方法应该相同:PPT中的Shape与XLS或Word中的Shape没有什么不同。同样,任何应用程序中的图表现在都是相同的Excel图表,而不是MSGraph。
它似乎确实是一个错误,但它似乎没有解决方案:
您可能尝试访问的属性(例如.Format.Line.Fill...
等)根本不存在 - 实际上我怀疑它们确实存在,但它们并未暴露给您或VBA。试图打电话给他们会引发错误:(