@@@用excel做票据打印的问题,请高手解答

vivaxie vivaxie 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
当用以下这段程序打印票据时,每打印一张票据,就会在内存中产生一个
EXCEL.EXE 文件,占用大约11M的内存,请问如何修改,才能在打印一张或者一定量的票据后
,将EXCEL.EXE 程序在内存中“除掉”呢,是否可以用vb编码杀掉以前的进程呢?



Private Sub CmdPrint_Click()
Dim i As Integer '当前月份
Dim j As Integer 'EXCEL表格行变量
On Error GoTo ErrMsg
i = InputBox("请输入当前月份", "数据输入")

If MsgBox("请将纸放入打印机,准备打印销售单", vbInformation + vbOKCancel, "销售提示") = vbOK Then
'On Error Resume Next

Me.Data1.Recordset.MoveFirst
While Not Me.Data1.Recordset.EOF

Dim xlApp As Excel.Application
Set xlApp = New Excel.Application

Dim strSource, strDestination As String
strSource = App.Path & "\print.xls"

If (Data1.Recordset.Fields(i + 3).Value - Data1.Recordset.Fields(i + 2).Value) = 0 Then
Else
If Not Me.Data1.Recordset.EOF Then

With Me.Data1.Recordset
strDestination = App.Path & "\Temp.xls"
FileCopy strSource, strDestination
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
Set xlBook = xlApp.Workbooks.Open(strDestination)
Set xlsheet = xlBook.Worksheets(3)
xlsheet.Cells(6, 1) = "LPG"
xlsheet.Cells(6, 2) = "立方米"
xlsheet.Cells(6, 3) = .Fields(i + 3).Value - .Fields(i + 2)
xlsheet.Cells(6, 4) = "9"
xlsheet.Cells(6, 5) = 9 * xlsheet.Cells(6, 3)
xlsheet.Cells(7, 2) = "表底数: " & .Fields(i + 2).Value & " " & "抄见数: " & .Fields(i + 3)
End With
xlBook.Save
xlsheet.PrintOut
xlApp.Quit
End If
End If
Me.Data1.Recordset.MoveNext
Wend
End If
Exit Sub
ErrMsg:
MsgBox "请输入正确的月份!", vbInformation, "系统提示"
End Sub
...全文
评论 5
收藏 已收藏
分享
返回顶部