所以我对编写VBA或编程一般都很陌生。我收到一个"编译错误:下一个没有"。我相信我会为3个人提供3个联系,但我仍然没有任何线索。以下是我正在处理的代码......
Sub width2()'自动指定系列宽度
For Series = 1 To 24 'chart series, 144 combinations
For i = 0 To 1
For j = 0 To 11
ActiveSheet.ChartObjects("Chart 4").Activate
ActiveChart.FullSeriesCollection(Series).Select
With Selection.Format.Line
.Visible = msoTrue
.Weight = Sheet5.Range("Q9").Offset((9 * i) + 6, (3 * j)).Value
Next j
Next i
Next Series
End Sub
不确定错误在哪里。 任何帮助非常感谢 谢谢。
答案 0 :(得分:1)
由于您没有共享工作表数据结构,因此这不是完整的答案。
代码无需使用Activate
,ActiveChart
和Select
即可运行。相反,它引用“图表6”ChartObject
,然后使用以下Line.Visible
语句修改Line.Weight
的{{1}}和SeriesCollection
个版本:{{1} }。
注意:如果@Piyush Verma决定分享他的数据结构,也可以处理With
的数学部分。
<强>代码强>
With MyCht.Chart.SeriesCollection(12 * i + j + 1)
答案 1 :(得分:1)
For Series = 1 To 24 'chart series, 144 combinations
For i = 0 To 1
For j = 0 To 11
ActiveSheet.ChartObjects("Chart 4").Activate
ActiveChart.FullSeriesCollection(Series).Select
With Selection.Format.Line
.Visible = msoTrue
.Weight = Sheet5.Range("Q9").Offset((9 * i) + 6, (3 * j)).Value
End With
Next j
Next i
Next Series
答案 2 :(得分:0)
你必须用“EndWith”关闭每个“With”。在您的代码中省略了这一点。
同时用“EndIf”关闭每个“if”,用“Next”关闭“for”,以避免“编译错误:下一个没有用于”