Excel制作一个报价单,而且不只是一次报价,要无限次重复报价单的创建,本文介绍一个制作过程。

商业活动中,商品报价是建立商品交易的第一步,通过卖方报价可得到一个是否成交的意向。

假如商品较多,报价单的制作是一个很繁琐的过程,特别是价格不能弄错了,以免造成信誉损失或经济损失。

本文示例如下图所示?

通过一些按钮过程,实现对报价单的创建,这里用到了几张表,有商品信息表,报价信息表,报价表等。

其实可以集合到一个表里进行管理,但分表管理有其特殊的便捷性能,特别是通过代码提取信息的时候很方便。

添加商品信息,通过一个窗体来实现,这样可以选择多条商品,一键添加到报价单里。

如下图所示:

严格来说,本示例并没有什么特别的地方,重点就是要对整个工作表添加进行定位。

本例中应用了数组形式来实现单元格添加,数组有其速度快,准确高效的特点。

其中,单元格定位也是将地址作为数组元素来进行保存,为以后改变单元格提供方便。

保存报价单代码

Private Sub CommandButton6_Click() '保存报价单 On Error Resume Next Dim s As Worksheet Set s = ThisWorkbook.Worksheets("报价记录") SaveList s Set s = Nothing gohome End Sub

保存过程

Private Sub SaveList(s As Worksheet) On Error Resume Next Dim xArr() xArr = GetxArr(s) s.Activate Dim R As Range, ir As Long, ic As Long ir = 1 ic = s.Cells(ir, s.Columns.Count).End(xlToLeft).Column ir = 2 Set R = s.Cells(ir, 1).Resize(1, ic) R.Insert Set R = s.Cells(ir, 1).Resize(1, ic) R.Value = xArr ThisWorkbook.Save MsgBox "保存成功!", vbInformation, "提示'" Erase xArr Set R = Nothing End Sub

单元格地址数组

Private Function CellAddrArr() CellAddrArr = Array("", "", "C2", "I2", "C3", "I3", "C4", "I4", "J18", "I16", "C17") End Function

返回报价单信息值

Private Function GetxArr(s As Worksheet) GetxArr = Array("") On Error Resume Next Dim sArr() Dim R As Range, xR As Range, ir As Long, ic As Long ir = 1 ic = s.Cells(ir, s.Columns.Count).End(xlToLeft).Column Set R = s.Cells(ir, 1).Resize(1, ic) ReDim sArr(1 To R.Count) For Each xR In R Select Case xR.Column Case 1 sArr(xR.Column) = "=row()-1" Case Else sArr(xR.Column) = Range(CellAddrArr(xR.Column)).Value End Select Next xR GetxArr = sArr Erase sArr Set R = Nothing Set xR = Nothing End Function

总体来说,制作这个应用还是有其比较实用的功能。

最终结果是将报价这个工作变得简单方便。

欢迎关注、收藏

---END---