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