我有一個主窗體(Sheet2),其中用戶在列C中輸入一個長代碼,並在D列中有一個公式設置爲只取最後6位數長碼。如果從單元格D中的公式導出的那些值等於名爲「ref_list」(Sheet5)的單獨工作表的C列中列出的任何值,那麼我希望主工作表的F列中的相應單元格變爲紅色。一旦單元格顏色爲紅色,用戶將能夠點擊列F中的紅色單元格並導航到與列D中的6位數值關聯的值列表。VBA更改單元格顏色基於不同工作表上的範圍值
因此,如果6位數字在D列派生的代碼是「123ABC」,並且該值等於Sheet5列C中列出的代碼之一,那麼我希望同一行的F列單元變爲紅色並且可點擊。一旦點擊它將觸發一個宏列出與「123ABC」相關的所有值。
現在,我硬編碼了這些值和與它們相關的宏。我不想硬編碼這些值,所以我把它們放在一個範圍內。但是,我無法使邏輯工作。一旦範圍設置完畢,我如何指定哪些單元格變爲紅色,以及如何觸發與6位數值相關的適當宏。我已經研究了vba的範圍,但是關於如何根據範圍值調用宏,我沒有很多運氣找到任何資源。這是我迄今爲止的代碼。
Sub cellColorChange()
Dim acctCode As Range
Set acctCode = Sheet2.Range("D7:D446").Value
Dim refCodes As Range
Set refCodes = Sheet5.Range("C1:C20").Value
Dim changeColor As Range
Set changeColor = Sheet2.Range("F7:F446").Value
If acctCode.Value = refCodes.Value Then
changeColor.ActiveCell.Interior.Color = 3
Else
ActiveCell.Interior.Color = 0
End If
End Sub
非常感謝您的回答。但是,當我在主表單中的C列中輸入帳戶代碼時,主表單上F列中的相應單元格不會變爲紅色。 – anve
我在C列中輸入代碼時進行了更改,F列中的相應單元格變爲紅色 –
感謝您的修改。但是,F列中的單元格仍然不會變成紅色。如果有幫助,主表格C列中的單元格會根據雙擊單獨列出長代碼的表單中的單元格獲取它們的值,並且只需要F列變爲紅色,當且僅當主表的D列等於表5的C列中的任何值。再次感謝您的編輯 – anve