|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
请教一个问题批量套打时,查询数据后引用打印,有一个问题不知道怎么写代码 请教论坛老师们
当查询的数据返回没有数值,提示没有查询到学员,这时候如何跳过这张不打印,继续打印下一张
- Private Sub CommandButton1_Click()
- Call 查询科目学员名单
-
- ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True
- Range("u3") = Range("u3") + 1
-
-
- End Sub
- Private Sub CommandButton2_Click()
- Dim aaa As Long
- Dim i As Long
- Dim times As Long
- If MsgBox("查询到班级学员信息,是否开始打印点名单?", vbOKCancel + vbQuestion, "询问") = vbOK Then
- aaa = Range("Y5") '设置打印总页码,读取该单元可作为循环次数
- Range("u3") = 1 '设置当前打印页码,从第一页开始
- times = aaa '打印循环次数
- For i = 1 To times
- Call CommandButton1_Click '调用“打印1页”
-
- Next i
- Range("u3") = 1 '恢复当前页码为第一页
- MsgBox "打印完毕,共计打印 " & aaa & " 张。" '弹出打印总页数的消息
- End If
-
-
- End Sub
- Sub 查询科目学员名单()
-
- Range("A6:V1000").ClearContents '清空页面内容
-
-
- Range("A2:v20").Borders.Weight = xlThin '指定区域添加所有边框
-
-
- Dim ar, br(), FindStr As String, FindW As String, i As Integer, n As Integer
- With Sheets("点名单打印")
- FindStr = .[a3] & .[c3] & .[d3] '查询条件
- End With
- ar = Sheets("学员档案汇总").[a2].CurrentRegion
- ReDim Preserve br(1 To UBound(ar), 1 To 5)
- FindW = ar(3, 8) & ar(3, 9) & ar(3, 10) '查询区域
- For i = 2 To UBound(ar)
- FindW = ar(i, 8) & ar(i, 9) & ar(i, 10) '
- If FindStr = FindW Then '写入区域
- n = n + 1
- br(n, 1) = ar(i, 22)
- br(n, 2) = ar(i, 23)
- br(n, 3) = ar(i, 24)
- br(n, 4) = ar(i, 1)
- br(n, 5) = ar(i, 2)
- End If
- Next
- If n < 1 Then MsgBox "本班级没有查询到报名学员", vbQuestion, "警告": Exit Sub
- With Sheets("点名单打印")
- .[B6].Resize(n, 5) = br
- End With
- End With
- End Sub
复制代码 If n < 1 Then MsgBox "本班级没有查询到报名学员", vbQuestion, "警告": Exit Sub当执行到这句时,会弹出提醒,可是确认后还是继续打印这张没有数据的表格,怎么写才能跳过这张不打印?
|
|