方法很簡單,只需要在工作表2使用格式化的條件就可以了。
- 在工作表2全選(可以按Ctrl + A全選,或者按A和1之間的位置全選等等)
- 在常用>設定格式化的條件>新增規則
3. 選擇「使用公式來決定要格式化哪些儲存格」
4. 公式的部分輸入︰
=COUNTIF(工作表1!$1:$1048576,ADDRESS(ROW(),COLUMN(),4))>0
格式則按個人喜好選取背景顏色等等就可以了
5. 之後在工作表1裡任何位置填寫儲存格位址,工作表2便會在相應地方著色。
公式說明︰
目標是為了在工作表2中找出該儲存格的位址是否在工作表1被提到,
如果有出現過,為True,則依格式設定反映(=著色),
所以使用countif來判斷,如果該位址有出現在工作表1,便會大於0。
而儲存格的位置便利用row()和column()來判斷,便會隨位置不同而自動改變。Address是把列和行的數值換成儲存格位址的文字,而4是以相對參照的形式輸出,而預設下會以A1樣式呈現。
VBA版︰
如果不是追求即時取得,或者因為某些因素而選擇用VBA顯示的話,可以參考這個寫法︰
Sub colorcell()
Sheets(“工作表2”).Cells.ClearFormats
For Each cell In Range(“A1”, “G7”)
If cell <> vbNullString Then
Sheets(“工作表2”).Range(cell).Interior.Color = RGB(255, 0, 255)
End IfNext
End Sub
這個做法比較暴力,先把所有格式清除(Cells.clearformats)
再用for each cell來指定範圍裡每個儲存格,如果那個儲存格不是空白(vbnullstring),那就把儲存格內的文字當成位址,為它著色
以上。