No.1
由于一些中小企业生产特点,发货记录常常很多,那么对于这样的商品进行管理 , 就是一个复杂的问题 。如果使用大型管理软件,显然有些浪费,如果用简单的Excel来管理,又显得麻烦 。
本节将对发货记录做一个表格来进行录入、查询和汇总进行一个简单介绍 。
如下图所示,整个报表页面就在一个表中进行 。
表中可实现所有数据汇总 , 业务员单人数据汇总,以及各类关键字段模糊查询功能 。
如果是一个小型加工企业,完全可以解决发货报表的一些汇总功能 , 而且只需要对相关字段进行选择即可实现 。
No.2
重点看一下代码Private Sub Worksheet_Change(ByVal Target As range)On Error Resume NextIf VBA.Len(VBA.Trim(Target.Value)) = 0 Then Exit SubApplication.ScreenUpdating = False'--------------------------------------个人信息查询-------------------------------If Target.Address = "$H$1" ThenDim listArr, Lx As Variant, li As IntegerlistArr = Array("L", "M", "S")li = 0Dim cell As rangeSet cell = ActiveSheet.range("H3:S3")For Each Lx In listArrDim iArr, ix As Long, xCount As LongDim kArr(0 To 11)For i = 0 To UBound(kArr)kArr(i) = 0Next iiArr = getYWY(Target.Value, "F")If VBA.Len(iArr(0)) = 0 Then'MsgBox "记录为空!" '没有记录GoTo End001End IfgetKarr iArr, kArr, CStr(Lx)End001:If li > 0 ThenSet cell = cell.Item(1).Offset(1, 0).Resize(1, cell.Columns.Count)End Ifli = li1cell = kArrNext LxSet cell = NothingEnd 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 = TrueEnd Sub
上述代码存放于Worksheet_Change事件当中,对事件当中的特定单元格进行判断,本例中如果是“H1”单元格数据改变则执行查询代码 。
查询结果为某个业务员的所有相关数据,结果添加到月份对应表格内 。
可以看到代码中还使用了一个公共函数SelectValue 函数 , 函数如下:
【如何制作发货记录报表模糊查询,汇总管理,这样做完美】
Sub SelectValue(tRange As range, selecAddress As String, colStr As String) ''查询If tRange.Address = selecAddress ThenDim Hcell As rangeSet Hcell = ActiveSheet.range(Cells(14, 1), _Cells(ActiveSheet.UsedRange.Rows.Count, _ActiveSheet.UsedRange.Columns.Count))Hcell.Rows.Hidden = FalseDim xArrxArr = getSelectStrRows(colStr, VBA.Trim(tRange.Value))Hcell.Rows.Hidden = TrueIf VBA.Len(xArr(0)) = 0 Then Exit SubFor Each xrw In xArrActiveSheet.Rows(xrw).Hidden = FalseNext xrwSet Hcell = NothingErase xArrEnd IfEnd Sub
根据不同的参数 , 执行不同的模糊查询字段,查询结果将列出所有符合条件的数据条目 。
如此便实现了模糊查询的功能 。
相对于Excel表格进行数据处理,使用VBA还是有很大的优势,效率高,使用简单方便 。
如果说缺点,就是维护难 。
如果对VBA一点也不了解,那么在后期修改表格的时候,有些VBA代码需要进行相应简单修改,这就是说,一旦编码完成,最好别再对表格进行插入或删除操作,会对整个代码造成一些不必要的破坏 。
欢迎关注、收藏
---END---