If you use for...next loop as suggested by Norie, you can include empty cell checking inside the loop and exit the loop if empty cell is met

' no longer needed row = 8 'starting row for worksheet-1
            for row = 8 to 52
            if ActiveWorkbook.Sheets("WorkSheet-1").Cells(row, 1).Value = "" then exit for
                    With ThisWorkbook.Sheets("TAGSTEMPLATE")
'... all your code
                    End With
                    PAGETAGNUM = PAGETAGNUM + 1
                    If PAGETAGNUM > 6 Then
                        Call printandclear
                        PAGETAGNUM = 1
                    End If
            Next row