咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

No.1

由于一些中小企业生产特点,发货记录常常很多,那么对于这样的商品进行管理,就是一个复杂的问题。

如果使用大型管理软件,显然有些浪费,如果用简单的Excel来管理,又显得麻烦。

本节将对发货记录做一个表格来进行录入、查询和汇总进行一个简单介绍。

如下图所示,整个报表页面就在一个表中进行。

表中可实现所有数据汇总,业务员单人数据汇总,以及各类关键字段模糊查询功能。

如果是一个小型加工企业,完全可以解决发货报表的一些汇总功能,而且只需要对相关字段进行选择即可实现。

No.2

重点看一下代码

Private Sub Worksheet_Change(ByVal Target As range) On Error Resume Next If VBA.Len(VBA.Trim(Target.Value)) = 0 Then Exit Sub Application.ScreenUpdating = False '-------------------------------------- 个人信息查询 ------------------------------- If Target.Address = "$H$1" Then Dim listArr, Lx As Variant, li As Integer listArr = Array("L", "M", "S") li = 0 Dim cell As range Set cell = ActiveSheet.range("H3:S3") For Each Lx In listArr Dim iArr, ix As Long, xCount As Long Dim kArr(0 To 11) For i = 0 To UBound(kArr) kArr(i) = 0 Next i iArr = getYWY(Target.Value, "F") If VBA.Len(iArr(0)) = 0 Then 'MsgBox "记录为空!" '没有记录 GoTo End001 End If getKarr iArr, kArr, CStr(Lx) End001: If li > 0 Then Set cell = cell.Item(1).Offset(1, 0).Resize(1, cell.Columns.Count) End If li = li + 1 cell = kArr Next Lx Set cell = Nothing End If '-------------------------------------- 模糊查询 客户名称 ----------------------------- SelectValue Target, "$E$12", "E" '-------------------------------------- 模糊查询 业务员 ------------------------------- SelectValue Target, "$F$12", "F" '-------------------------------------- 模糊查询 合同号 ------------------------------- SelectValue Target, "$G$12", "G" '-------------------------------------- 模糊查询 产品名称 ----------------------------- SelectValue Target, "$H$12", "H" '-------------------------------------- 模糊查询 开票 ------------------------------- SelectValue Target, "$O$12", "O" '-------------------------------------- 模糊查询 开票 ------------------------------- SelectValue Target, "$T$12", "T" Application.ScreenUpdating = True End Sub

上述代码存放于Worksheet_Change事件当中,对事件当中的特定单元格进行判断,本例中如果是“H1”单元格数据改变则执行查询代码。

查询结果为某个业务员的所有相关数据,结果添加到月份对应表格内。

可以看到代码中还使用了一个公共函数SelectValue 函数,函数如下:

Sub SelectValue(tRange As range, selecAddress As String, colStr As String) ''查询 If tRange.Address = selecAddress Then Dim Hcell As range Set Hcell = ActiveSheet.range(Cells(14, 1), _ Cells(ActiveSheet.UsedRange.Rows.Count, _ ActiveSheet.UsedRange.Columns.Count)) Hcell.Rows.Hidden = False Dim xArr xArr = getSelectStrRows(colStr, VBA.Trim(tRange.Value)) Hcell.Rows.Hidden = True If VBA.Len(xArr(0)) = 0 Then Exit Sub For Each xrw In xArr ActiveSheet.Rows(xrw).Hidden = False Next xrw Set Hcell = Nothing Erase xArr End If End Sub

根据不同的参数,执行不同的模糊查询字段,查询结果将列出所有符合条件的数据条目。

如此便实现了模糊查询的功能。

相对于Excel表格进行数据处理,使用VBA还是有很大的优势,效率高,使用简单方便。

如果说缺点,就是维护难。

如果对VBA一点也不了解,那么在后期修改表格的时候,有些VBA代码需要进行相应简单修改,这就是说,一旦编码完成,最好别再对表格进行插入或删除操作,会对整个代码造成一些不必要的破坏。

欢迎关注、收藏

---END---