循环内的子停止循环

时间:2018-08-21 21:22:14

标签: excel-vba loops

我正试图让一个子程序在另一个子程序的循环内运行,但可惜它不起作用。

这是我的代码:

Sub PrintSet()

Level = WorksheetFunction.CountA(Worksheets("MARKUP PLAN").Range("m2:m100"))

Dim Lvl As String

For i = 0 To Level - 1

Lvl = Worksheets("MARKUP PLAN").Cells(i + 2, 13).Value
Worksheets("MARKUP PLAN").Cells(10, 32).Value = Lvl

ChartUpdatePlan 'Run Chart sub to update the chart on sheet "MARKUP PLAN"

Worksheets("MARKUP PLAN").Range("a2:AF37").Select
Selection.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=ThisWorkbook.Path & "\" & Lvl & ".pdf", _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=True

Next i

End Sub

当我运行它时,它会打印出第一级(i = 0),然后无缘无故地停止(或至少没有我可以找到的)。

当我摆脱循环并手动增加“ Lvl”时,它可以正常工作,但是当然,我宁愿不必手动执行该操作。

如果我摆脱了循环中的“ ChartUpdatePlan”子级,则循环工作得很好,并且打印了每个级别,但是图表未得到更新。

有人可以告诉我为什么在调用sub时循环不起作用,而在sub无效时起作用吗?

非常感谢你, 安托万

0 个答案:

没有答案