求助VBA代码。送货单打印并记录,最后清除数据。

图1是送货单,图2 是打印记录。想做一个VBA程序,可以完成打印并记录,最后清除数据。初步写了一段代码,但是运行中有些问题:1、最后一步清除数据,range()总是提示错误2、送货单中,有时1个品种,有时多个品种。我写的代码不论实际发出几种商品,总是记录三条商品信息。怎样才能只记录实际发生的那条记录呢?

Sub 打印()'打印票据Sheets("送货单").SelectActiveWindow.SelectedSheets.PrintOut '调用打印命令打印当前页'保存数据With Sheets("打印记录")x = .Range("a65536").End(xlUp).Row + 1 '取得“记录”表中最后一个空行的行号(即写入位置).Cells(x + i, 1) = [b2] '发货日期.Cells(x + i, 2) = [i2] '单据编号.Cells(x + i, 3) = [b3] '客户名称.Cells(x + i, 4) = [a5] '商品名.Cells(x + i, 5) = [c5] '规格.Cells(x + i, 6) = [d5] '数量.Cells(x + i, 7) = [e5] '单价.Cells(x + i, 8) = [f5] '金额.Cells(x + i, 9) = [b9] '发货人.Cells(x + i, 10) = [g9] '收货人End WithWith Sheets("打印记录")x = .Range("a65536").End(xlUp).Row + 1 '取得“记录”表中最后一个空行的行号(即写入位置).Cells(x + i, 1) = [b2] '发货日期.Cells(x + i, 2) = [i2] '单据编号.Cells(x + i, 3) = [b3] '客户名称.Cells(x + i, 4) = [a6] '商品名.Cells(x + i, 5) = [c6] '规格.Cells(x + i, 6) = [d6] '数量.Cells(x + i, 7) = [e6] '单价.Cells(x + i, 8) = [f6] '金额.Cells(x + i, 9) = [b9] '发货人.Cells(x + i, 10) = [g9] '收货人End WithWith Sheets("打印记录")x = .Range("a65536").End(xlUp).Row + 1 '取得“记录”表中最后一个空行的行号(即写入位置).Cells(x + i, 1) = [b2] '发货日期.Cells(x + i, 2) = [i2] '单据编号.Cells(x + i, 3) = [b3] '客户名称.Cells(x + i, 4) = [a7] '商品名.Cells(x + i, 5) = [c7] '规格.Cells(x + i, 6) = [d7] '数量.Cells(x + i, 7) = [e7] '单价.Cells(x + i, 8) = [f7] '金额.Cells(x + i, 9) = [b9] '发货人.Cells(x + i, 10) = [g9] '收货人End With'清除数据(单据编号i2格与有公式的单元格不用清除)Range("a5:e7").ClearContentsMsgBox "打印并保存完毕", , "提示"End Sub

第1个回答  2015-11-25
貌似没有错啊

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网