儲存格顏色改變問題?

2008-06-11 7:21 am
我有個file須要輸入 1變紅色, 2變橙色, 3變黃色, 4變綠色.... 如此類推...(共有8個)
但超過3個格式化條件就做唔到, 請問有無其他方法? 如有...可否詳細一點教我.... 或做好程式比我copy都可以!
更新1:

竟然無人識答?

更新2:

整張工作表都要, 有VBA程式最好.... thx!

回答 (3)

2008-06-13 10:39 pm
✔ 最佳答案
共有 8 個顏色,咁儲存格要有幾多個呢?
例如︰A1到A8?定係更大範圍?或整張工作表都要轉色?
因為要寫VBA程式

2008-06-13 14:39:09 補充:
在 Excel 開「工具」>「巨集」>「Visual Basic 編輯器」
雙擊左邊「專案 - VBAProject」內你需要的工作表(在這例子用 Sheet1)
在「程式碼」視窗左邊選「Worksheet」右邊選「SelectionChange」
把程式碼貼在 Private Sub Worksheet_SelectionChange(ByVal Target As Range) 和 End Sub 中間
可以關閉「Visual Basic 編輯器」
再到「工具」>「巨集」>「安全性」
在安全性視窗的「安全性層級」設定為「中」級,如果設定為「高」級,EXCEL下次開啟開會停用這「巨集」。
以下是你要的程式碼,你要把 Sheet1 改回你在 Excel 內的工作表名稱。
Worksheets("Sheet1").Activate
Select Case ActiveCell.Value
Case 1
ActiveCell.Interior.Color = RGB(255, 0, 0)
Case 2
ActiveCell.Interior.Color = RGB(255, 128, 0)
Case 3
ActiveCell.Interior.Color = RGB(255, 255, 0)
Case 4
ActiveCell.Interior.Color = RGB(0, 255, 0)
Case 5
ActiveCell.Interior.Color = RGB(128, 255, 0)
Case 6
ActiveCell.Interior.Color = RGB(0, 0, 255)
Case 7
ActiveCell.Interior.Color = RGB(128, 0, 255)
Case 8
ActiveCell.Interior.Color = RGB(192, 192, 192)
Case Else
ActiveCell.Interior.ColorIndex = xlColorIndexNone
End Select


圖片參考:http://hk.geocities.com/tult010/knowledge/Alex.gif


2008-06-14 12:06:25 補充:
Case "ST"
ActiveCell.Interior.Color = RGB(192, 192, 192)
Case "HA"
ActiveCell.Interior.Color = RGB(192, 192, 192)
照樣加到 Case Else 之前,係文字就用 "ST" 括住佢,但留意空白位,RGB 顏色自己改。在「發表意見」內回答問題,因為字數有限,不能寫太多,如有複雜問題,請發問新的問題,請見諒!

2008-06-16 09:35:27 補充:
ActiveCell 係控制當前儲存格,例如你在B5輸入完資料按Enter才算完成B5的資料輸入,但同時當前儲存格會跳到B6,VBA這時才被啟動處理B6儲存格。
你可以試在A1輸入完資料不按Enter按右箭咀,A1右邊沒有儲存格,當前儲儲存格仍然在A1,這樣VBA會處理A1儲存格。

2008-06-17 00:29:58 補充:
以下程式第一行尾的 "A1:D10" 係選擇可以轉色的儲存格範圍,你可以自行修改,因為要即時處理沒有指定目標的儲存格,每輸入資料按 Enter 一次,Excel 便要處理「所選範圍」儲存格一次,範圍越廣 Excel 執行處理越耐,你自己決定吧!

2008-06-17 00:30:39 補充:
For Each c In Worksheets(ActiveSheet.Name).Range("A1:D10")
Select Case c.Value
Case 1
c.Interior.Color = RGB(255, 0, 0)
Case 2
c.Interior.Color = RGB(255, 128, 0)

2008-06-17 00:31:02 補充:
Case 3
c.Interior.Color = RGB(255, 255, 0)
Case 4
c.Interior.Color = RGB(0, 255, 0)
Case 5
c.Interior.Color = RGB(128, 255, 0)
Case 6
c.Interior.Color = RGB(0, 0, 255)

2008-06-17 00:31:24 補充:
Case 7
c.Interior.Color = RGB(128, 0, 255)
Case 8
c.Interior.Color = RGB(192, 192, 192)
Case Else
c.Interior.ColorIndex = xlColorIndexNone
End Select
Next c

2008-06-17 02:11:44 補充:
到「檢視」>「工具列」剔選「剪貼簿」
用「剪貼簿」來剪下、複製及貼上
2008-06-15 8:10 am
Alex Tang Thank You 你....

2008-06-15 00:17:55 補充:
點解輸入完要返轉頭先自動轉色?我e-mail ( [email protected] )

2008-06-16 13:32:34 補充:
唔好意思~ Alex Tang,因為我完全唔識VBA,所以再煩你,如果我想輸入完即刻處理,有無可能呢?

2008-06-17 01:03:55 補充:
Alex Tang 非常感激你既幫忙,已經做到喇!你真係好好~ 但係我發現另一個問題,點解D儲存格做唔到複製...貼上既?係咪因為有VBA係到?
2008-06-13 10:16 pm
If Worksheets("Sheet1").Range("A1").Value = "1" Then Worksheets("Sheet1").Range("A1").Interior.ColorIndex = 40

如果 sheet1 中的儲存格 A1 的值等如 1 , sheet1 中的儲存格 A1 的底色等如 40 ( 橙色 , 好似係 )

.Interior.ColorIndex 是控制項 , 後面的 =40 是顏色碼 .

如果按照你的問題 , 你的 excel 表中出現的數據其實都應該幾多 , 你可以試下用 end(xldown) 同埋 for ~ loop 去配合 , 否則 , 只靠上面一句程式碼 , 很難做到你的要求 , 或者要將上面果條程式碼打成千上萬次 .

另外 , 請問你是否 excel vba 初哥 ? 如果係初哥 , 又冇乜寫 program 經驗 , 用 loop 同其他野配合o既話 , 會好容易俾佢搞到亂曬龍 =)


收錄日期: 2021-04-19 23:33:30
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20080610000051KK03048

檢視 Wayback Machine 備份