技術分享 | 如何用Excel VBA構建數據查詢界面(一)

今天是冬至,又選了一個特別的日子。今天還是小扎做出Javis的新聞滿天傳的日子,沒有他那麼厲害,但起碼也能做一點特別的東西。

廢話不多說,直接開始。

先說說整個項目的背景,當時我們積累了公司內各個產品項目的數據,在沒有開發人力的情況下,需要做一個可以快速查看數據的界面,幫助新合作進行初步的預估。

於是,在短短一個周末的時間內,我開始自學VBA,希望能快速的做出這個界面。

首先講下整個查詢界面的頁面邏輯,比較簡單,只有不到10頁。

菜單作為所有頁面的入口,有兩個基本的功能:一是數據查看,二是計算篩選。還有一個小功能,可以看到最近入庫的供應商信息。

先講下這個小功能,首先會找到對應表的倒數三個記錄及對應的數據,然後呈現在菜單的控制項上。最後通過點擊菜單界面觸發小功能代碼。

實現代碼如下(馬賽克部分為對應的表名)

接下來,講菜單第一個功能,數據查看。

由於整個項目建立在excel,因此也會有查看原始數據的需求。通過點擊按鈕觸發代碼,對應的表格呈現,同時隱藏菜單頁面。

實現代碼如下

然後,講菜單第二個功能,計算篩選。

維度1搜索篩選, 基於數據表某一欄位進行數據計算搜索,然後呈現。實現最多三組數據同時查詢。

實現代碼:

單條記錄查詢,先判斷輸入框是否為空,然後獲取輸入款的輸入值進行循環查找,找對應單元格的位置,再通過該位置找到對應欄位,然後進行計算。

多條記錄查詢,與單條記錄查詢一致,這裡不贅述。

這裡再講一個小功能,可以自定義增加和減少搜索的欄位。

代碼如下:

還有一個討巧的功能,實現搜索後,搜索結果呈現的功能

在VBA後台設置對應的控制項屬性可見性為FALSE,然後再搜索按鈕點擊後,觸發修改這個屬性為TRUE。

實現代碼:

剩下的幾個功能,我會下一篇繼續講,敬請期待。

最後,祝大家冬至快樂,記得吃湯圓。


推薦閱讀:

怎樣把excel題庫轉成word?
如何用excel做一個內容塊隨下拉菜單選項變化而變化?
怎樣在excel中用公式引用另一個excel表格裡面的圖片?
如何批量將列轉變成行?
關於excel,就是前一列越長,後一列縮進越多 形成階梯一樣 是如何辦到的?

TAG:Excel使用 | VBA | 数据可视化 |