【发布时间】:2012-01-09 17:56:10
【问题描述】:
我希望图表中的绘图线根据用户指定的特定标准为实心、圆点或方点。我可以使用宏成功地为绘图设置线条颜色和标记样式,但我似乎找不到保存绘图线条样式属性值的对象。我尝试过使用录制宏功能,但是在属性窗口中更改线型并没有显示在代码中,并且运行录制的宏没有效果。
非常感谢任何帮助!
【问题讨论】:
我希望图表中的绘图线根据用户指定的特定标准为实心、圆点或方点。我可以使用宏成功地为绘图设置线条颜色和标记样式,但我似乎找不到保存绘图线条样式属性值的对象。我尝试过使用录制宏功能,但是在属性窗口中更改线型并没有显示在代码中,并且运行录制的宏没有效果。
非常感谢任何帮助!
【问题讨论】:
YourChartSeries.Border.LineStyle = [some value from the XlLineStyle enumeration]
更新:在 XL 2010 中录制我明白了 -
ActiveChart.SeriesCollection(1).Select
With Selection.Format.Line
.Visible = msoTrue
.DashStyle = msoLineSysDot
End With
ActiveChart.SeriesCollection(2).Select
With Selection.Format.Line
.Visible = msoTrue
.DashStyle = msoLineSysDash
End With
这可能是您正在寻找的。p>
【讨论】:
创建一个包含 255 个数据系列的图表,运行代码(并根据需要进行其他格式化)。然后将其保存为模板。
Sub dd()
Dim wb As Workbook
Set wb = Application.ActiveWorkbook
Dim myChart As Chart
Set myChart = wb.Charts("Chart5")
Dim mySeries As series
For Each mySeries In myChart.SeriesCollection
mySeries.Format.Line.Weight = 1#
Next
End Sub
【讨论】:
如果你有一个折线图,我最终创建了一个 switch 语句,因为我不知道如何创建一个“名称”变量数组。见list of line types here
For j = i To num_lines_to_plot
count = count + 1
ActiveChart.SeriesCollection.NewSeries
With ActiveChart.SeriesCollection(j)
.Name = _
"='"**... (you'll need to fill this in)**
'create gradient
.Format.Line.ForeColor.RGB = RGB(255, 20 * count, 0)
'modify linetype
If count > 4 Then
line_type = count Mod 4
Else
line_type = count
End If
Select Case line_type
Case Is = 1
.Format.Line.DashStyle = msoLineSolid
Case Is = 2
.Format.Line.DashStyle = msoLineSquareDot
Case Is = 3
.Format.Line.DashStyle = msoLineDash
Case Is = 4
.Format.Line.DashStyle = msoLineLongDash
End Select
End With
Next
【讨论】: