【求助】Excel: Mark/UnMark 儲存格 - PCZONE 討論區

返回   PCZONE 討論區 > ▲ -- 電 腦 軟 體 討 論 區 > -- OFFICE 相 關 軟 體 討 論 版


PCZONE 討論區



通知

-- OFFICE 相 關 軟 體 討 論 版 Word、Excel、PowerPoint、Access、Outlook、FrontPage或Office XP等的問題解答與經驗分享

圈外人
【求助】Excel: Mark/UnMark 儲存格 **已解**
最近在 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


回覆
Take it easy~

一定要 Ctrl-M 嗎?
讓它 auto-highlight 是不是較方便.

這個用"格式化條件"來做比較方便, 但如果
原來自己就有設格式化條件, 那就要再想辦法..

語法:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   On Error Resume Next
   [jute].FormatConditions.Delete
   Target.EntireRow.Name = "jute"
   With [jute].FormatConditions    '條件格式化
       .Delete
       .Add xlExpression, , "TRUE" '第條件(一)內公式為
       .Item(1).Interior.ColorIndex = 36 '等於FormatConditions(1)
   End With
End Sub
這個 Worksheet Event 要放在工作表模組裡.

See also :
http://www.excelhelp.net/cgi-bin/for...m=8&topic=2245
http://www.pczone.com.tw/vbb3/showthread.php?t=117218
回覆
圈外人

再次感謝 Leon 兄, 明天回公司我會試試看...
(雖然還不知道條件格式化是什麼, 但我想 online help 應該會有 )

我會用 Ctrl-M 是因為公司裡不是所有 worksheet 都會用到這功能, 是我突發奇想自己發明的, 雖然大部份使用者都說有此功能很方便, 但顏色復原方面就...

對了另外還有個問題:
在 Excel 裡若要設定巨集的快速鍵, 一般只能用 Ctrl-(Shift)-英文字母
有沒有什麼辦法可以設定為其它的 (例: Ctrl-Alt-F12 或 Shift-Alt-9)?
回覆
Take it easy~

Worksheet Event 基本上只適用所屬的工作表,
也可改寫為適用該活頁簿的全部或指定工作表,
因此不用擔心作用對象的問題。

以標準功能而言,設定巨集的快速鍵只有 Ctrl-字母 和 Ctrl-Shit-字母 兩種.
不過也可以自行寫程式,利用 Application.Onkey 方法來指定想要的快速鍵。
但 Onkey 要小心使用,以免影響原有快速鍵或造成其他不可預期的問題。
回覆
圈外人

謝謝 Leon 兄, 事情已圓滿解決。
現在我把它寫成了兩個版本, 一個放在 Workbook OnSheetSelectionChange, 另一個放在 module 裡還是用原來的 Ctrl-M (可以只在想要用的時候用)
(原來我又把問題想得太複雜了! )

回覆


類似的主題
主題 主題作者 討論版 回覆 最後發表
【投票】顯示卡 3D Mark 分數大評比 linux_xp -- 電 腦 硬 體 討 論 版 50 2006-01-12 07:21 AM
【閒聊】Excel 唸出"儲存格"內容??? larry0116 -- OFFICE 相 關 軟 體 討 論 版 2 2004-04-28 11:33 AM
這個3D Mark 2001 是什麼意思 quite -- HELP ME 電 腦 軟 硬 體 急 救 版 7 2002-07-29 05:06 PM
Mark 硬碟壞軌的工具 godeagle -- 電 腦 硬 體 討 論 版 2 2001-09-07 09:41 PM






 XML   RSS 2.0   RSS 
本站使用 vBulletin 合法版權程式
站務信箱 : [email protected]

本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。