jute
2004-02-10, 05:35 PM
最近在 Excel 寫了個巨集, 就是按下 Ctrl-M 後, 整列儲存格會變成黃色, 然後再按一次就會變成無色 (xlNone). 這樣我就隨時可以知道自己正在哪一列輸入資料, 不會打錯格.
不過這有個問題, 就是整個 worksheet 的儲存格都必須是無色, 否則 Ctrl-M 按兩次, 本來是什麼顏色的也會被變成無色...
想請教的是, 在不知道資料範圍究竟多廣 (含資料的的最後一行在哪) 的情況下, 如何在整列標示為黃色後再按一次 Ctrl-M 就會恢復為原來的顏色? 雖然我是可以利用 array 儲存原來的顏色值再用 For loop 去搞定, 不過不知道要查到哪一行才算最後一行. 有辦法嗎?
原碼如下:
Sub Mark()
On Error Resume Next
Dim r As Long, c As Long
With ActiveCell
r = .Row
c = .Column
End With
ActiveCell.EntireColumn.Select
With Selection
.Interior.ColorIndex = IIf(.Interior.ColorIndex <> xlNone, xlNone, 36)
End With
Cells(r, c).Select
End Sub
贊助商連結
不過這有個問題, 就是整個 worksheet 的儲存格都必須是無色, 否則 Ctrl-M 按兩次, 本來是什麼顏色的也會被變成無色...
想請教的是, 在不知道資料範圍究竟多廣 (含資料的的最後一行在哪) 的情況下, 如何在整列標示為黃色後再按一次 Ctrl-M 就會恢復為原來的顏色? 雖然我是可以利用 array 儲存原來的顏色值再用 For loop 去搞定, 不過不知道要查到哪一行才算最後一行. 有辦法嗎?
原碼如下:
Sub Mark()
On Error Resume Next
Dim r As Long, c As Long
With ActiveCell
r = .Row
c = .Column
End With
ActiveCell.EntireColumn.Select
With Selection
.Interior.ColorIndex = IIf(.Interior.ColorIndex <> xlNone, xlNone, 36)
End With
Cells(r, c).Select
End Sub
贊助商連結