我有一个主窗体(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