当我循环访问列表时,VBA打印输出代码会跳过纸张打印

时间:2019-04-12 11:21:33

标签: excel vba time printing while-loop

我正在执行一个while循环,以打印出一张拣货单。但是,当我浏览成堆的文件时,我遇到了麻烦,因为有些纸丢失了。对于大约40张纸,将缺少2张纸。

我尝试添加一个等待计时器,因此它将在每次打印之间等待4秒。这实际上解决了问题,但是我花了35分钟才能完成循环打印。我什至试图将计时器调低到2-3秒,但结果是负面的。

With Sheets("Utskrift").Range("D3")
' '   If .Value = "" Then
       .Value = Sheets("Butiker").Range("D3").Value
       If Sheets("Utskrift").Range("L2") >= 1 And Sheets("Utskrift").Range("L2") <= 68 Or Sheets("Utskrift").Range("L3") >= 1 And Sheets("Utskrift").Range("L3") <= 16 Then
               ActiveSheet.PrintOut From:=1, To:=1
               Application.Wait Now + #12:00:04 AM#

            ElseIf Sheets("Utskrift").Range("L2") > 68 Then
               ActiveSheet.PrintOut From:=1, To:=2
               Application.Wait Now + #12:00:04 AM#

            Else:


            End If

  Do While Sheets("Utskrift").Range("D3") > ""
        v = Application.Match(.Value, Sheets("Butiker").Range("D3:D9"), 0)
        If IsNumeric(v) Then
            .Value = Sheets("Butiker").Range("D3:D9").Cells(v + 1, 1).Value
            If Sheets("Utskrift").Range("L2") >= 1 And Sheets("Utskrift").Range("L2") <= 68 Or Sheets("Utskrift").Range("L3") >= 1 And Sheets("Utskrift").Range("L3") <= 16 Then
               ActiveSheet.PrintOut From:=1, To:=1
               Application.Wait Now + #12:00:04 AM#

            ElseIf Sheets("Utskrift").Range("L2") > 68 Then
               ActiveSheet.PrintOut From:=1, To:=2
               Application.Wait Now + #12:00:04 AM#

            Else:


            End If
        Else
            .Value = ""
        End If
    Loop
End With

还有其他方法可以确保打印出每张纸,而我不必等待4秒钟吗?也许有一种方法可以检查哪些纸张没有打印出来,然后我可以在以后重新打印。

0 个答案:

没有答案