Excel VBA Автоматический диапазон печати не работает после обновления - PullRequest
0 голосов
/ 23 октября 2019

Я использовал этот сценарий Excel VBA в сочетании с моим листом для печати этикеток, но вдруг он перестал работать. Я думаю, что это связано с новым обновлением. Он используется для циклического просмотра моих данных и печати нескольких этикеток, но теперь он печатает только одну и останавливается, не переходя к следующей строке.

Может кто-нибудь взглянуть на код и посмотреть, есть ли что-то, чтоможет прерывать процесс?

Я получаю сообщение о несоответствии типов "13" в этой строке:

StartRow = Worksheets("Backside").Range("T4").Value

Это остальная часть кода:

Sub PrintOneShelf()
Dim NrPositions As Integer
Dim StartRow As Integer


Application.Calculate


    NrPositions = Worksheets("Backside").Range("T3").Value
    StartRow = Worksheets("Backside").Range("T4").Value
    PrintRow = Worksheets("Backside").Range("T5").Value

    Worksheets("Backside").PrintOut From:=1, To:=NrPositions, Copies:=1

    NrPositions = Worksheets("Frontside").Range("T3").Value
    StartRow = Worksheets("Frontside").Range("T4").Value

    Worksheets("Frontside").PrintOut From:=1, To:=NrPositions, Copies:=1
    Worksheets("Print Overview").Cells(PrintRow, 2).Value = "x"


End Sub
Sub PrintBackShelf()

Dim NrPositions As Integer
Dim StartRow As Integer


Application.Calculate


    NrPositions = Worksheets("Backside").Range("T3").Value
    StartRow = Worksheets("Backside").Range("T4").Value
    PrintRow = Worksheets("Backside").Range("T5").Value

    Worksheets("Backside").PrintOut From:=1, To:=NrPositions, Copies:=1
    Worksheets("Print Overview").Cells(PrintRow, 2).Value = "x"

End Sub

Sub PrintFrontShelf()

Dim NrPositions As Integer
Dim StartRow As Integer


Application.Calculate

    NrPositions = Worksheets("Frontside").Range("T3").Value
    StartRow = Worksheets("Frontside").Range("T4").Value
    PrintRow = Worksheets("Frontside").Range("T5").Value

    Worksheets("Frontside").PrintOut From:=1, To:=NrPositions, Copies:=1
    Worksheets("Print Overview").Cells(PrintRow, 3).Value = "x"



End Sub

Sub PrintBackShelves()

Dim StartRow

Application.Calculate

    PrintRow = Worksheets("Backside").Range("T5").Value

    Do While IsNumeric(PrintRow)

        Call PrintBackShelf
        Application.Calculate
        PrintRow = Worksheets("Backside").Range("T5").Value
    Loop

End Sub
Sub PrintFrontShelves()

Dim StartRow

Application.Calculate

    PrintRow = Worksheets("Frontside").Range("T5").Value

    Do While IsNumeric(PrintRow)

        Call PrintFrontShelf
        Application.Calculate
        PrintRow = Worksheets("Frontside").Range("T5").Value
    Loop

End Sub

Sub PrintShelves()

Dim StartRow

Application.Calculate

    PrintRow = Worksheets("Backside").Range("T5").Value

    Worksheets("Print Overview").Range("B5").End(xlDown).Value = ""

    Do While IsNumeric(PrintRow)

        Call PrintBackShelf
        Application.Calculate
        PrintRow = Worksheets("Backside").Range("T5").Value
    Loop



Application.Calculate

    Worksheets("Print Overview").Range("B5").End(xlDown).Value = ""

    PrintRow = Worksheets("Backside").Range("T5").Value

    Do While IsNumeric(PrintRow)

        Call PrintFrontShelf
        Application.Calculate
        PrintRow = Worksheets("Backside").Range("T5").Value
    Loop

End Sub
...