首頁 > 科技

如何製作發貨記錄報表模糊查詢,彙總管理,這樣做完美

2021-06-07 11:28:19

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 = li + 1cell = 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---


IT145.com E-mail:sddin#qq.com