本文介紹如何利用保護(hù)工作表和保護(hù)工作簿等功能,限制可編輯區(qū)域,設(shè)置數(shù)據(jù)驗(yàn)證,以保證復(fù)雜的邏輯關(guān)系不會(huì)被隨意改動(dòng)。
系列教程索引和配套練習(xí)文件,請(qǐng)點(diǎn)這里。
經(jīng)過(guò)前面幾番折騰,咱手上這份 Excel 文檔的公式引用結(jié)構(gòu)可謂相當(dāng)復(fù)雜。發(fā)給同事使用的時(shí)候,難免人家因?yàn)椴磺宄澈蟮倪壿?,而在無(wú)意中進(jìn)行一些破壞性的修改,導(dǎo)致失效。
作為一個(gè)工具性的 Excel 表格,我們制作的目的是讓電腦自動(dòng)完成識(shí)別分類(lèi)的工作,節(jié)省人力。這個(gè)過(guò)程可以簡(jiǎn)化為,用戶(hù)粘貼進(jìn)來(lái)三級(jí)分類(lèi),復(fù)制走一級(jí)二級(jí)分類(lèi);有需要時(shí)可以改動(dòng)分類(lèi)體系,其余的功能可以暫時(shí)丟掉。
打開(kāi) Example 6.xlsx,切換至 Tamplate 工作表。
首先為大量的分類(lèi)工作預(yù)留位置,將 A3 和 B3 的公式,向下填充至 A5000 和 B5000 行,這里的數(shù)字根據(jù)日常工作經(jīng)驗(yàn)確定。但是發(fā)現(xiàn)在三級(jí)分類(lèi)為空的地方,一二級(jí)分類(lèi)出現(xiàn)了 #N/A 的錯(cuò)誤,所以在一二級(jí)公式中加入三級(jí)分類(lèi)是否為空的判斷,修改 A3 處公式如下
=IF(C3="", "", VLOOKUP($C3, CHOOSE({1,2}, INDIRECT(Settings!$B$5):INDIRECT(Settings!$B$8), INDIRECT(Settings!$B$3):INDIRECT(Settings!$B$6)), 2, FALSE))
同理,B3 處公式如下
=IF(C3="", "", VLOOKUP($C3, CHOOSE({1,2}, INDIRECT(Settings!$B$5):INDIRECT(Settings!$B$8), INDIRECT(Settings!$B$4):INDIRECT(Settings!$B$7)), 2, FALSE))
然后再將 A3 和 B3 向下填充至 5000 行即可。
使用保護(hù)工作表時(shí),默認(rèn)情況下除了選取單元格外,對(duì)整個(gè)工作表的任何編輯是被禁止的,而我們需要用戶(hù)輸入三級(jí)分類(lèi),所以需要將三級(jí)分類(lèi)的位置設(shè)置為 “
允許用戶(hù)編輯區(qū)域 ”,這樣在啟動(dòng)保護(hù)工作表時(shí),該部分才可以被修改。
切換至 “ 審閱 ” 標(biāo)簽,點(diǎn)擊 “ 允許用戶(hù)編輯區(qū)域 ”。

在彈出的退化框中點(diǎn)擊 “ 新建 ” 按鈕,添加一個(gè)可允許編輯的區(qū)域。

為該區(qū)域設(shè)置一個(gè)名稱(chēng);并且選中三級(jí)分類(lèi)所在的區(qū)域,這里根據(jù)常用工作量來(lái)判斷,將 C3:C5000 設(shè)置為可編輯區(qū)域;下方的區(qū)域密碼為空,這樣才可以不受限制的編輯該區(qū)域。

單擊 “ 確定 ” 按鈕,可以看到剛剛設(shè)置的區(qū)域已經(jīng)被添加到了允許用戶(hù)編輯的列表中。再次單擊 “ 確定 ” 按鈕。
接著,在頂部 Ribbon 工具欄中單擊 “ 保護(hù)工作表 ” 按鈕。

在彈出的對(duì)話框中,輸入密碼,例如 “ amazing ”,下方的權(quán)限采用默認(rèn)設(shè)置即可,單擊 “ 確定 ” 按鈕。

在新彈出的對(duì)話框中再次輸入一遍剛剛輸入的密碼,單擊 “ 確定 ” 按鈕。

至此即完成了對(duì) Tamplate 工作表的保護(hù),除 C3:C5000 區(qū)域外其他位置都不可以被編輯改動(dòng)了。
針對(duì) Settings 工作表,采用類(lèi)似的處理,保留 tab 參數(shù),也即 C9 位置的編輯權(quán),其余用密碼保護(hù)起來(lái)。如此,用戶(hù)可以更改 tab 參數(shù)來(lái)切換分類(lèi)體系,但是不會(huì)輕易將 Settings 中的其余參數(shù)搞混淆。
現(xiàn)在的工作簿結(jié)構(gòu)是可以被修改的,也即用戶(hù)可以增加和刪除工作表。如果分類(lèi)體系相對(duì)固定,則可以使用保護(hù)工作簿功能,限制對(duì)工作表的增加和刪除。
單擊工具欄中的 “ 保護(hù)工作簿 ” 按鈕。

在彈出的對(duì)話框中輸入密碼,單擊 “ 確定 ” 按鈕,然后再次輸入密碼以確認(rèn)。

這里的密碼可以與剛剛設(shè)置的 “ amazing ” 不同,但在本例中,仍然使用剛才的密碼。
至此,各個(gè)工作表的結(jié)構(gòu)被鎖定,無(wú)法增加或刪除。整個(gè)工作簿中唯一能改動(dòng)的內(nèi)容即剛剛所設(shè)置的兩個(gè)允許編輯的區(qū)域,以及 Genre 和 Hehe 工作表。在日常使用中,只需將三級(jí)分類(lèi)粘貼到 C3:C5000 的位置,即可從 A3:B5000 的位置上復(fù)制一級(jí)分類(lèi)和二級(jí)分類(lèi),非常方便。
一些說(shuō)明
- 如果不對(duì)工作簿進(jìn)行保護(hù),而又不想用戶(hù)隨意修改 Settings 工作表,可以將其隱藏,右鍵工作表選項(xiàng)卡單擊 “ 隱藏 ” 即可。

- 設(shè)置密碼只是為了防止意外的修改將現(xiàn)有體系破壞,當(dāng)工作表的功能需要繼續(xù)升級(jí)或者進(jìn)行修正時(shí),需要取消保護(hù)工作表,以及取消保護(hù)工作簿,因而這套密碼的目的并非出于保密。我個(gè)人推薦將密碼作為參數(shù)寫(xiě)到 Settings 中,以防遺忘,也能方便他人在頭腦清醒的情況下對(duì)表格做出修繕。

最后,做一點(diǎn)錦上添花的工作,為三級(jí)分類(lèi)添加數(shù)據(jù)驗(yàn)證。該操作需要在工作表沒(méi)有被保護(hù)的情況下進(jìn)行。首先切換到 Tamplate 工作表,單擊上方工具欄中的 “ 撤銷(xiāo)保護(hù)工作表 ” 按鈕。

在彈出的對(duì)話框中輸入密碼,并確定。

然后選擇 C3:C5000 區(qū)域,在 “ 數(shù)據(jù) ” 選項(xiàng)卡中單擊 “ 數(shù)據(jù)驗(yàn)證 ” 按鈕。

在彈出的對(duì)話框中,將 “ 允許 ” 下拉列表設(shè)置為 “ 序列 ”,勾選 “ 提供下拉箭頭 ” 復(fù)選框,并在 “ 公式 ” 處填寫(xiě)如下公式
=OFFSET(INDIRECT(Settings!$B$10), 0, 0, Settings!$B$2)
即,所有符合規(guī)定的值必須是所使用的三級(jí)分類(lèi)體系里面的值。

在 “ 出錯(cuò)警告 ” 選項(xiàng)卡中,按如下內(nèi)容設(shè)置,并確定。

這樣就給 C3:C5000 區(qū)域設(shè)置了數(shù)據(jù)驗(yàn)證,單擊其中的一個(gè)可以發(fā)現(xiàn)在右側(cè)有一個(gè)下拉箭頭,里面提供了所有合法的三級(jí)分類(lèi)值,點(diǎn)擊其中一個(gè)即可選擇。
當(dāng)手動(dòng)輸入的三級(jí)分類(lèi)無(wú)效時(shí),Excel 會(huì)給出如下圖所示的警告,提示用戶(hù)進(jìn)行修改或確認(rèn)。

兩個(gè)說(shuō)明
- 數(shù)據(jù)保護(hù)只能檢測(cè)用戶(hù)輸入的數(shù)據(jù),對(duì)于粘貼到 C3:C5000 區(qū)域內(nèi)的數(shù)據(jù),是無(wú)能為力的。
- 如果公示太長(zhǎng)了不易閱讀,可以將公示拆開(kāi)換行,使用 Alt + Enter 鍵。Excel 會(huì)忽略空格和換行符,所以可以有更直觀的公式排版方式,像下面這樣。
=IF(
C3 = "",
"",
VLOOKUP(
$C3,
CHOOSE(
{1,2},
INDIRECT(Settings!$B$5):INDIRECT(Settings!$B$8),
INDIRECT(Settings!$B$3):INDIRECT(Settings!$B$6)
),
2,
FALSE
)
)
如此便完成了 Example 6.xlsx。
下一課中,將做一個(gè)簡(jiǎn)要的總結(jié),談?wù)勑牡谩?/p>
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 本例為設(shè)置密碼窗口 (1) If Application.InputBox(“請(qǐng)輸入密碼:”) = 1234 Th...
- 最近大火的韓劇《今生是第一次》憑借清新浪漫的情節(jié),和極其符合現(xiàn)代社會(huì)80后現(xiàn)實(shí)的生活感悟而引起了大量的年輕觀眾的共...
- 【姓名】蘇建新 【派別】文魁派 【導(dǎo)師】王玉印、袁文魁 【分舵】聞雞起武 【舵主】劉麗瓊 因?yàn)槲淞钟?jì)劃第一課我沒(méi)有...