在我的主表中,我有一個列(列C),其中將輸入長16位數的代碼。下一列(D列)用公式「= MID(列C中的單元格,16,6」)得出該代碼的最後6位數。如果較長代碼的最後6位數等於我列出的任何代碼Case
聲明在代碼中,F列中的相應單元格應該變成紅色,以向用戶指示列F中的單元格需要代碼,一旦F列單元格變成紅色,用戶能夠點擊F中的該單元格列,並且它將用戶帶到另一個代碼列表中,用戶可以雙擊任何代碼,並且將它填充到主表中的F列當單元格中的值改變單元格顏色
到目前爲止,當代碼填充F列,它變成了一個沒有填充的背景(我想)但是,當我在相同行中的任何單元中輸入任何其他數據時,F列中的單元格會變回紅色,代碼仍在單元格中。我需要F列中的單元格在輸入數據後保留無填充背景,除非代碼已從單元格中刪除,然後它可以變回紅色以向用戶指示此單元格需要值。當代碼仍在其中時,我不能讓單元變紅。我覺得自己好像有點接近,但我不太瞭解VBA語法,無法讓這個功能正常工作。任何建議將不勝感激。
在此先感謝。 我將代碼發佈到下面的主片/形式:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range: Set c = Range("D7:D446")
Dim d As Range: Set d = Range("F7:F446")
For Each c In c.Cells
Select Case c.Value
Case "1000GP", "1000MM", "19FEST", "20IEDU", "20ONLC", "20PART", "20PRDV", "20SPPR", "22DANC", "22LFLC", "22MEDA", "530CCH", "60POUBL", "74GA01", "74GA17", "74GA99", "78REDV"
Cells(c.Row, "F").Interior.ColorIndex = 3
Case Else
Cells(c.Row, "F").Interior.ColorIndex = 0
End Select
Next c
If Not Application.Intersect(d, Range(Target.Address)) _
Is Nothing Then
Target.Interior.ColorIndex = 0
End If
End Sub
您的代碼只在D列中的某些內容未更改時激活。 – UGP
@UGP非常感謝您的回答。這工作。當我選擇一個代碼時,它現在填充F列中的單元格,並將單元格變回爲無填充顏色。但是,當我從F列的單元格中刪除該代碼時,我希望F單元格變回紅色。截至目前,它只是在刪除後保持不填充背景顏色。你會碰巧知道我該怎麼做呢?再次感謝!非常感激。 – anve
我添加了一個簡短的版本,你可能想看看。如果F中的值是「」 – UGP