Vba 循环结束后,我如何让它继续?

Vba 循环结束后,我如何让它继续?,vba,Vba,我从录制的宏开始循环和下一部分。但我想把它们放在同一个宏中,在这里我会被绊倒。 有什么想法吗 Sub SkapaPDF() ' ' SkapaPDF Macro ' Dim ws, ws1 As Worksheet Dim LastRow As Long Set ws = Sheets("Uträkning") Set ws1 = Sheets("TillPDF") 'Application.ScreenUpdating = False Sheets("TillPdf").Sel

我从录制的宏开始循环和下一部分。但我想把它们放在同一个宏中,在这里我会被绊倒。 有什么想法吗

Sub SkapaPDF()
'
' SkapaPDF Macro
'

Dim ws, ws1 As Worksheet
Dim LastRow As Long
Set ws = Sheets("Uträkning")
Set ws1 = Sheets("TillPDF")


'Application.ScreenUpdating = False

    Sheets("TillPdf").Select
    ws1.Rows("2:2").Select

        Do Until IsEmpty(ActiveCell.Value)
        Sheets("TillPdf").Select
        ws1.Rows("2:2").Select
        Selection.Copy
        Range("A" & Rows.Count).End(xlUp).Offset(1).Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Rows(ActiveCell.Row).Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ws1.Rows("2:2").Select
        Selection.Copy
        LastRow = Cells(Rows.Count, 1).End(xlUp).Row
        ActiveCell.End(xlDown).Offset(1, 0).Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Rows(ActiveCell.Row).Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("A" & Rows.Count).End(xlUp).Select
        If ActiveCell.Value = "0" Then Exit Sub
    Loop

    Application.ScreenUpdating = True
    Range("A2").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("PDF").Select
    Range("A3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Rows("3:3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Range(Selection, Selection.End(xlDown)).Select

    Sheets("PDF").Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:="\\naspri01tsivz2.tcad.telia.se\TS-Home136$\lrc691\Documents\Kemikalieskatt\Kemikalieskatt &ActiveCell(Q1).pdf", _
        OpenAfterPublish:=True

End Sub

我想您是在问“当值为“0”时,我如何不退出Sub,而是退出循环并继续执行其余代码”。如果是,请将
Exit Sub
更改为
Exit Do
。再想一想,也许这不是你要问的-我无法确定你的循环试图做什么-因此,也许你永远不会在复制的数据中得到“0”的值。循环是将信息从一个工作表复制到另一个工作表,第一个工作表包含很多vlookup和公式,所以我只需要这些值。但第一张纸上的行数可能会有所不同,因此当有0行时,我会进行循环停止。退出看起来很有趣。它是如何工作的?我可以用谷歌搜索它。我改为退出,但它只是重复了这个循环。解决了它。如果ActiveCell.Value=“0”,那么退出DoNow,我只需要在最后确定PDF文件的命名。结果是错的。