excel创建宏打印

保存单元格数据,并打印表格,按alt+F11调出VBA开发工具,添加模块。

Sub PrintPass()
'打印票据
Sheets("打印合格证").Select
ActiveWindow.SelectedSheets.PrintOut '调用打印命令打印当前页
'保存数据
With Sheets("记录")
x = .Range("a65536").End(xlUp).Row + 1 '取得“记录”表中最后一个空行的行号(即写入位置)
'For i = 0 To 2 '商品信息分三行,为了简化代码,使用循环语句
.Cells(x, 1) = [a1] '客户
.Cells(x, 2) = [b1] '长度
.Cells(x, 3) = [c1] '日期
'Next
End With

'清除数据(单据编号E2格与有公式的单元格不用清除)
Range("a1").ClearContents
'最后让票据的号码自动加1
's = Range("e2") '收据上的当前序号在E2单元格
'Range("e2") = Left(s, 2) & Right("0000" & Right(s, 4) + 1, 4) '打印完毕后让序号加一(编号的左两位是字符,右四位是数字)
'MsgBox "打印并保存完毕", , "提示"
End Sub

在A1单元格中回车调用模块函数

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'Application.EnableEvents = False
    Application.OnKey "{Enter}"
    If Target.Count = 1 And Target.Address = "$A$1" Then
       If i = 0 Then
          i = 2
          Exit Sub
       End If
       
       bianhao = CStr(Range("A1").Value)
       ret = MsgBox("要打印" + bianhao + "合格证吗?", vbExclamation + vbYesNo, "提示")
       If ret = 6 Then
            Application.OnKey "{Enter}", "printpass"
            Call PrintPass
       End If
       
    Else
       i = 0
    End If
'Application.EnableEvents = True

End Sub


猜你喜欢

转载自blog.51cto.com/9233403/2160273
今日推荐