我一直在尋找一個通用的代碼和修改,但我無法解決我的問題。VBA循環找到特定範圍內的顏色重複
我有一個包含許多行的工作文件。每行應該只有一個顏色填充(RGB 0,204,0)
。我想知道是否可以自動循環(不使用動作按鈕)到我的文檔中,並通過MsgBox突出顯示行,我在其中使用相同的顏色。
謝謝!
我一直在尋找一個通用的代碼和修改,但我無法解決我的問題。VBA循環找到特定範圍內的顏色重複
我有一個包含許多行的工作文件。每行應該只有一個顏色填充(RGB 0,204,0)
。我想知道是否可以自動循環(不使用動作按鈕)到我的文檔中,並通過MsgBox突出顯示行,我在其中使用相同的顏色。
謝謝!
我錄一個宏來看看什麼是RGB(0,204,0)的代碼,我發現,這是。
現在我認爲您的工作表名稱爲Sheet1
和具體範圍的名稱爲MySpecificRange
Option Explicit
Sub ChangeTheColorofSpecificRange()
Dim wb As Workbook
Dim ws As Worksheet
Dim MyRange As Range
Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet1")
Set MyRange = Range("MySpecificRange")
If MyRange.Interior.Color <> 52224 Then
MsgBox "Your SpecificRange doesn't have your desired background color so I'm going to do it!"
MyRange.Interior.Color = 52224
End If
End Sub
後,你寫這個代碼的模塊中,你可以通過點擊F5運行這個或或者轉到Developer
選項卡,Macros
部分和Run
宏。
只要問題不是很清楚,這裏有一些其他可能的解決方案:
如果您正在尋找Worksheet_Change()
事件作爲@Romcel Geluz問,請複製下面的代碼到您的Worksheet
對象頁面。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wb As Workbook
Dim ws As Worksheet
Dim MyRange As Range
Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet1")
Set MyRange = Range("MySpecificRange")
If MyRange.Interior.Color <> 52224 Then
MsgBox "Your SpecificRange doesn't have your desired background color so I'm going to do it!"
MyRange.Interior.Color = 52224
End If
End Sub
在這個例子中,無論你做你的工作表/類型/變化,如果你的SpecificRange是不是您想要的顏色,它會與改變它。(而且隨着花式MSGBOX告訴你!)
或者,如果你想一些代碼來改變你的SpecificRange的背景顏色在您的工作簿的開始,當你打開它,下面的代碼複製此到ThisWorkbook
紙。
Option Explicit
Private Sub Workbook_Open()
Dim wb As Workbook
Dim ws As Worksheet
Dim MyRange As Range
Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet1")
Set MyRange = Range("MySpecificRange")
If MyRange.Interior.Color <> 52224 Then
MsgBox "Your SpecificRange doesn't have your desired background color so I'm going to do it!"
MyRange.Interior.Color = 52224
End If
End Sub
使用顏色值的正確方法是使用'MyRange.Interior.Color = RGB(0,204,0 )'。您可以將RGB值分配給變量,方法是將它們定義爲「長」並使用相同的方法。 – UGP
非常感謝Mertinc!我的範圍是(C27:G48) 但是,我想知道是否可以做到以下幾點:當循環要找到特定的顏色(0,204,0),它將看看單元格的文本:即EXCELLENT(80)並將數值複製/粘貼到col H.我的數字從0開始; 5; 20; 40; 60; 80; 100. 如果循環找到兩個帶有顏色(0,204,0)的單元格,則B列需要着色(0,0,255) Finnaly,如果特定文本中的結果爲0,col H相關需要在(255,0,0)中着色。 – Teeshh
非常感謝您@Mertinc
我的範圍是(C27:G48)
不過,我想知道如果下面可以做:當環路要找到具體的顏色(0,204,0),它會查看單元格的文本:例如EXCELLENT(80)並將數字值複製/粘貼到列H中。我的編號從0開始; 5; 20; 40; 60; 80; 100.
如果循環找到兩個細胞的顏色(0,204,0)B列需要被着色(0,0,255)
Finnaly,如果結果中的特定文本爲0時,山口H相關需要在(255,0,0)中着色。
你的代碼應該在'Worksheet_Change()事件上運行嗎? –
要回答你的問題,是的,這是可能的。 – L42
即使這是不可能的,@ L42告訴雖然困難需要時間,但不可能只需要更長的時間:)歡呼隊友 – Mertinc