如何修复"编译错误:下一个没有" VBA中的错误?

时间:2017-01-02 09:58:12

标签: excel vba excel-vba loops for-loop

所以我对编写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

不确定错误在哪里。 任何帮助非常感谢 谢谢。

3 个答案:

答案 0 :(得分:1)

由于您没有共享工作表数据结构,因此这不是完整的答案。

代码无需使用ActivateActiveChartSelect即可运行。相反,它引用“图表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”,以避免“编译错误:下一个没有用于”