函數(shù)+VBA,詳細(xì)講解用EXCEL做工藝流程管理系統(tǒng)(vba的3種流程控制結(jié)構(gòu))
用EXCEL做工藝流程管理系統(tǒng)
主要內(nèi)容: 工藝流程管理系統(tǒng)的設(shè)計(jì)、數(shù)據(jù)錄入、數(shù)據(jù)更改、數(shù)據(jù)查找以及基礎(chǔ)數(shù)據(jù)的維護(hù)。
工藝流程管理系統(tǒng)的設(shè)計(jì):包含界面設(shè)計(jì)和流程設(shè)計(jì),因?yàn)槊總€(gè)公司或行業(yè)的工藝流程都存在差異,所以本次以上期發(fā)布的作品為例進(jìn)行講解。
數(shù)據(jù)錄入:本文采用VBA的方式(含代碼注釋)
數(shù)據(jù)更改:當(dāng)相同項(xiàng)目名(項(xiàng)目名為唯一值)錄入時(shí),系統(tǒng)自動(dòng)刪除原有數(shù)據(jù),并錄入新數(shù)據(jù)。
數(shù)據(jù)查找:數(shù)據(jù)查找采用函數(shù)公式的方式完成。
基礎(chǔ)數(shù)據(jù)維護(hù):基礎(chǔ)數(shù)據(jù)維護(hù)采用直接修改基礎(chǔ)數(shù)據(jù)所在工作表內(nèi)容。
1、基礎(chǔ)數(shù)據(jù):
1.1 首先我們?cè)?span id="gkep7e9w" class="candidate-entity-word" data-gid="1369707">EXCEL中新建一個(gè)工作表,如下圖所示。將包含的項(xiàng)目名一一列出在表一中,將我們所需要設(shè)計(jì)到的工序名和設(shè)備名羅列在表二中,并將對(duì)應(yīng)工序或設(shè)備需要控制的關(guān)鍵參數(shù)橫向羅列在表中,如下圖所示。
1.2 創(chuàng)建“項(xiàng)目名”名稱管理器:選中表格—公式—根據(jù)所選內(nèi)容創(chuàng)建定義的名稱—首行—確定。
1.3創(chuàng)建“設(shè)備名”名稱管理器:選中表格—公式—根據(jù)所選內(nèi)容創(chuàng)建定義的名稱—首行—確定。
1.4基礎(chǔ)數(shù)據(jù)創(chuàng)建好后可直接進(jìn)入下一步,如果后期有需要更改或增加的信息可直接在表一和表二中修改即可。
1.5 在開始之前先創(chuàng)建選圖的所有表格,方便后期數(shù)據(jù)錄入與查找。
2、信息錄入界面設(shè)計(jì):信息錄入界面這里以上一期發(fā)布的作品為例。首先新建一個(gè)工作表,命名為“工藝流程維護(hù)”,再按照下圖的方式在工作表中劃定對(duì)應(yīng)區(qū)域。這里可以根據(jù)工序的數(shù)量增加。下圖設(shè)計(jì)為6道工序。
2.1 關(guān)鍵參數(shù):對(duì)應(yīng)的關(guān)鍵參數(shù)信息在鋼網(wǎng)維護(hù)的基礎(chǔ)數(shù)據(jù)內(nèi),下面我們就講解如何在我們選擇對(duì)應(yīng)的工序或設(shè)備名后,自動(dòng)顯示對(duì)應(yīng)的關(guān)鍵信息。
2.2 工序名或設(shè)備名的選擇:按下圖順序依次選擇對(duì)應(yīng)單元格—數(shù)據(jù)—數(shù)據(jù)驗(yàn)證—序列– =INDIRECT($F$8)—確定。創(chuàng)建設(shè)備名的下拉選擇框。按照同樣的方式完成后面5個(gè)單的設(shè)置。
2.3 創(chuàng)建完后可下拉選擇基礎(chǔ)數(shù)據(jù)內(nèi)的設(shè)備名。
2.4 對(duì)應(yīng)設(shè)備的關(guān)鍵參數(shù)讀?。喝缦聢D所示,選擇對(duì)應(yīng)設(shè)備后自動(dòng)讀取對(duì)應(yīng)設(shè)備的關(guān)鍵參數(shù)。這里通過查找函數(shù)“vlookup”來實(shí)現(xiàn)。
2.4.1 查找函數(shù):在選擇關(guān)鍵參數(shù)的第一個(gè)單元格輸入公式:=IFERROR(VLOOKUP($F$9,下拉信息!$F:$K,2,FALSE),"")
在選擇關(guān)鍵參數(shù)的第二個(gè)單元格輸入公式:= IFERROR(VLOOKUP($F$9,下拉信息!$F:$K,3,FALSE),"")
在選擇關(guān)鍵參數(shù)的第三個(gè)單元格輸入公式:= IFERROR(VLOOKUP($F$9,下拉信息!$F:$K,4,FALSE),"")
在選擇關(guān)鍵參數(shù)的第四個(gè)單元格輸入公式:= IFERROR(VLOOKUP($F$9,下拉信息!$F:$K,5,FALSE),"")
在選擇關(guān)鍵參數(shù)的第五個(gè)單元格輸入公式:= IFERROR(VLOOKUP($F$9,下拉信息!$F:$K,6,FALSE),"")
公式注釋:在下圖選中區(qū)域去查找F9單元格的值(F9單元格為上圖的設(shè)備名),然后返回查找值對(duì)應(yīng)行的第2行的值。
2.4.2 按照同樣的方式,將公式復(fù)制到后面5列的關(guān)鍵參數(shù)區(qū)域即可。
2.5 創(chuàng)建項(xiàng)目名的下拉菜單:按照下圖的順序首先選擇要?jiǎng)?chuàng)建項(xiàng)目名的單元格—數(shù)據(jù)—數(shù)據(jù)驗(yàn)證—序列–=INDIRECT($C$8)—確定。
2.6 錄入和清除按鈕:依次選擇 開發(fā)工具—選擇按鈕—拖動(dòng)按鈕。修改按鈕的名字為錄入。并復(fù)制一個(gè)改名為清除。
2.7 插入模塊 依次選擇開發(fā)工具—visual—鼠標(biāo)右鍵單擊空白處—插入—模塊
2.8 清除代碼:新建一個(gè)清除的宏, 輸入下圖的代碼即可
2.8.1 代碼注釋:
Sub 清除() 新建一個(gè)清除的宏
Sheet1.Range("f9:u9") = "" 將Sheet1(工藝流程維護(hù))工作表F9到U9區(qū)域的值清除。
End Sub 結(jié)束宏
2.9 錄入代碼:錄入代碼是將下圖紅色區(qū)域(關(guān)鍵參數(shù)對(duì)應(yīng)的數(shù)據(jù))錄入到指定工作表中,方便后期的查詢。
2.9.1繼續(xù)在下面創(chuàng)建一個(gè)錄入代碼的宏。
2.9.2 代碼注釋:代碼運(yùn)行的邏輯見下圖,由于篇幅限制這里不再一一翻譯,有興趣的小伙伴可聯(lián)系我單獨(dú)討論哦。
3、工藝流程查看:首先新建一個(gè)“工藝流程查看”的工作表。然后按下圖的方式劃定對(duì)應(yīng)區(qū)域。這里所有查詢信息均以函數(shù)公式的方式實(shí)現(xiàn)。
3.1 按照上面講解的方式創(chuàng)建項(xiàng)目名的下拉信息。
3.2 通過VLOOKUP去查找對(duì)應(yīng)項(xiàng)目名的設(shè)備:
圖一
圖二
3.2.1 在查找單元格輸入公式:=IFERROR(VLOOKUP($C$6,數(shù)據(jù)源!$A:$K,2,FALSE),"")
3.2.2 公式大概意思是:在數(shù)據(jù)源的A列到K列區(qū)域(圖二)中去查找C6(圖一項(xiàng)目名所在單元格)的值,并返回查找值所在行的第二行的值。其中IFERROR的作用是查找返回錯(cuò)誤值時(shí)返回空值。依次將所有公式復(fù)制到對(duì)應(yīng)的設(shè)備單元格即可。這里講解不是很詳細(xì),如果對(duì)VLOOKUP函數(shù)不是很了解的話可能不是很容易理解,有興趣的話可以網(wǎng)上查看一下VLOOKUP函數(shù)的教材或聯(lián)系小編交流。
3.3 關(guān)鍵參數(shù)讀?。哼@里主要用到MATCH函數(shù),if函數(shù)和OFFSET函數(shù)。
圖三
圖四
3.3.1 通過OFFSET函數(shù)返回第一個(gè)關(guān)鍵參數(shù)的值=IF(OR(F6=0,F6=""),"",OFFSET(關(guān)鍵參數(shù)表!$C$1,關(guān)鍵參數(shù)表!$G$1,ROW()-7))
通過match函數(shù)查找對(duì)應(yīng)項(xiàng)目的行號(hào)。=IFERROR(MATCH(工藝流程查看!$C$6,關(guān)鍵參數(shù)表!$A:$A,0),1)-1(這里熟悉的話可以將兩個(gè)函數(shù)寫在一起)
3.3.2公式注釋:以上公式的意思就是從圖四的C1單元格從下移動(dòng)G1(圖四單元格)鎖對(duì)應(yīng)的值(圖片對(duì)應(yīng)的值是下移19行)。然后向右(列號(hào))移動(dòng)圖三(G7單元格所在行號(hào)-7)0列(因?yàn)镚7對(duì)應(yīng)的行號(hào)是7,再減7,所以是0)。
3.3.3 通過同樣的方式將公式復(fù)制到所有的關(guān)鍵參數(shù)對(duì)應(yīng)的單元格內(nèi)即可。
結(jié)語:由于篇幅限制,這里不一一講解函數(shù)的運(yùn)用。如果上期分享有獲得作品的小伙伴可自行學(xué)習(xí)研究。也可以根據(jù)本文的講解進(jìn)行修改以便適用于自己。好啦,本期就分享到這里!
有喜歡本文的可點(diǎn)贊、轉(zhuǎn)發(fā)、評(píng)論支持哦。希望大家多多支持!