excel学习库

excel表格_excel函数公式大全_execl从入门到精通

VBA编程,报价单的管理过程制作方法,源码

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---

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接