2017-05-19 53 views
0

我一直在尋找一個通用的代碼和修改,但我無法解決我的問題。VBA循環找到特定範圍內的顏色重複

我有一個包含許多行的工作文件。每行應該只有一個顏色填充(RGB 0,204,0)。我想知道是否可以自動循環(不使用動作按鈕)到我的文檔中,並通過MsgBox突出顯示行,我在其中使用相同的顏色。

謝謝!

+0

你的代碼應該在'Worksheet_Change()事件上運行嗎? –

+5

要回答你的問題,是的,這是可能的。 – L42

+0

即使這是不可能的,@ L42告訴雖然困難需要時間,但不可能只需要更長的時間:)歡呼隊友 – Mertinc

回答

0

我錄一個宏來看看什麼是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 
+0

使用顏色值的正確方法是使用'MyRange.Interior.Color = RGB(0,204,0 )'。您可以將RGB值分配給變量,方法是將它們定義爲「長」並使用相同的方法。 – UGP

+0

非常感謝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

0

非常感謝您@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)中着色。