2016-12-22 43 views
0

我已經查看了條件格式,並且從中可以看到它必須在Excel中打開時突出顯示符合規則的特定單元格。如何突出顯示包含當前單元格文本的單元格

Excel電子表格有沒有辦法讓某種形式的規則檢查當前單元格的文本值與特定範圍內的所有其他單元格並突出顯示與當前單元格的文本值匹配的所有單元格?

我正在爲一個活動創建一個巨大的預約時間表,我希望人們能夠點擊他們的某個約會,其他約會將在整個時間表中突出顯示。只要您點擊不同公司名稱的其他單元格,將會突出顯示具有該公司名稱文本值的所有單元格。

每一行代表一家公司(約50個),每列將代表一個預約時段(即9:15-9:30)。每個單元格將保存將在匹配預約時間與相應公司會面的買方的名稱/代碼。您可以想象這會變得非常混亂,我相信能夠持續突出顯示每位買家的所有約會將很有用。

我如何把它放在一起,甚至有可能?

+1

是的,它是可能的。你將不得不編寫讀取被單擊單元格值的VBA代碼(使用工作表的SelectionChange事件),然後在包含約會的整個單元格範圍內使用該值執行Range.Find)並找到每個單元格,設置單元格的.interior.backgroundcolor屬性以滿足您的要求。您還希望在執行查找之前將所有單元格背景設置爲白色,或者在每次查看時將所有單擊的單元格留爲彩色。 – Dave

+0

這應該足以讓你開始 - 通常這只是一個「向我們展示你所嘗試過的」類型註釋,但它是Xmas(差不多),所以繼續研究以上內容。如果您仍然有麻煩,請回來,更新您的代碼,我們會看看我們是否無法讓您擺脫困境。 – Dave

+0

@Dave好評!只要提一下,如果首先用'Union'將所有'Find'範圍收集到一個範圍,然後執行你所描述的操作就會更快。 – CommonSense

回答

3

因爲它是聖誕節...使用Worksheet_SelectionChange事件更新您的條件格式。

您可能想要添加一個空白單元格檢查 - 它會突出顯示所選範圍內的所有空白單元格(黃色背景,紅色文本)。

喜歡的東西:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

    Dim rngAppointments As Range 

    If Target.Cells.Count = 1 Then 
     Set rngAppointments = Target.Parent.Range("A1:D50") 
     If Not Intersect(Target, rngAppointments) Is Nothing Then 
      With rngAppointments 
       With .FormatConditions 
        .Delete 
        .Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""" & Target.Value & """" 
       End With 
       .FormatConditions(.FormatConditions.Count).SetFirstPriority 
       With .FormatConditions(1) 
        With .Font 
         .Bold = True 
         .Color = -16776961 
        End With 
        With .Interior 
         .Color = 65535 
        End With 
       End With 
      End With 
     End If 
    End If 
End Sub 
+0

謝謝達倫,工作得很好:)聖誕快樂! – RubyMax

相關問題