EXCEL是個超級好用的軟體,讓我們一起發掘它無窮的潛力!!
這裡直接放一個範本檔 (https://goo.gl/jHwxXW)
概要
- [問題]
一張Excel表格中,數字很多,有的是使用者要直接填值,而且常常需要更改;但有些是用公式去參考別的儲存格作運算,很容易被誤改掉。 - [思路]
若是有方法能快速判斷Excel儲存格內是否有公式存在,然後在有公式的儲存格上標出不同顏色或特別的字型,也就能容易避免被誤改掉了。再進一步把有公式的儲存格強制保護起來,也就可以不被誤改了。 - [實作]
分成兩大步驟
- Part 1. 判斷儲存格內是否有公式並標色
- 待會會提到三種方法,建議用 [方法二] 實作,並可用 [方法一] 快速驗證有無寫錯。
- 三種方法在下一段”Part 1 詳述”中
- Part 2. 鎖定儲存格,不給改。要做到下面三個小步驟
- 把所有的儲存格先都設定成不保護的屬性:Excel 2010 -> 選擇全部的儲存格(直接按左上角) ->右鍵->儲存格格式->保護->鎖定不要勾選->確定
- 選取內含公式的儲存格設定成要保護的屬性:如[方法一],然後->右鍵->儲存格格式->保護->鎖定要勾選->確定
- 執行儲存格保護,上鎖:Excel 2010 -> 校閱 -> 保護工作表 ->輸入密碼(若怕忘了密碼也可以留空白不設定)->再次輸入密碼->確定
- Part 1. 判斷儲存格內是否有公式並標色
Part 1 詳述:
[方法一] 適用:想用滑鼠快速選出來時
按法 | ||
---|---|---|
Excel 2010 | -> 常用 -> 編輯小項 -> 尋找與選取 | ->公式-> Excel會把所有用公式的儲存格圈選起來 |
Excel 2010 | -> (直接按F5也行) -> 特殊 | ->公式-> Excel會把所有用公式的儲存格圈選起來 |
[方法二] 要寫簡單的 VBA 程式碼(給office用的巨集語言)
- 但存檔時要存成xlsm。優點:可以快速複製給其他儲存格使用。
- 打開Excel後,按ALT+F11打開VBA編輯器,在活頁簿下右鍵插入一個模組(才能寫Code),然後在右邊代碼框裡貼上下列代碼。
- 選取想要判斷的儲存格(假設是D4)->點選Excel選單列的常用->樣式->設定格式化的條件->新增規則->使用公式來決定….->填入”=IsFormulaInCell(D4)=TRUE”–>格式–>選個字型顏色–>確定–>確定
- DONE
[方法三] 用”宏表函數”(巨集函數)來判斷,沒有程式碼
- 但存檔時要存成xlsm。缺點:步驟最複雜。
- “宏表函數”–>早期低版本excel 4.0中使用的,現在已由VBA頂替它的功能,但還是能用。(話說目前excel 2010已經是excel 14.0了~)
- Excel 2010 -> 公式 ->名稱管理員(CTRL+F3, Name Manager)->新增一個名稱叫做「是否內含公式」,它的”參照到(Reference)”內容請寫
- 然後在一個任意的儲存格上寫下下列文字, (請完全照抄)
- 最後就此儲存格就會有True or False回報
- DONE
- 備註1:工具->巨集->安全性->設置為低或中才可以
- 備註2:
GET.CELL函數的詳細用法及實例介紹
Get.Cell函數的語法如下介紹:
=Get.Cell(類型號,單元格引用)
其中常用的類型號對應的含義如下介紹:範圍為1-66,也就是說Get.Cell函數可以返回一個單元格里66種信息。
典型及常用的類型號及代表的意思有:
6——以文本顯示單元格的公式
13——單元格填充顏色編碼數字
20——如果單元格所有或第一個字符為加粗,返回True
21——如果單元格所有或第一個字符為斜體,返回True
22——如果單元格所有或第一個字符為單底線,返回True
23——如果單元格所有或第一個字符中間加了一條刪除線,返回True
24——單元格第一個 的顏色編碼數字。
63——單元格填充顏色(背景)編碼數字。
64——單元格填充顏色(前景)編碼數字。
Get.Cell函數按照常規方法在單元格中輸入是沒有任何用處的,還會提示函數無效。
Get.Cell函數不能寫在公式裡,一般的使用時,都是寫在名稱(Name Manager)。
比如要獲取A1單元格里的數據格式,結果想顯示在B1,則步驟如下:
第一,任選一個單元格–>菜單中的插入—>名稱–>定義
第二,在名稱稱輸入任意名稱(比如為hhh)
第三,在引用位置上寫入=GET.CELL(7,Sheet1!A1)
第四,點擊添加;
第五,在B1單元格里輸入=hhh
這樣就得到了最終的結果了。