单击一个单元格并突出显示相关单元格

时间:2017-04-04 18:10:53

标签: excel excel-vba mapping vba

我要做的是有一个型号列表,列表旁边是所有型号的部件号列表。我希望能够做的是点击模型并突出显示该模型中的部分或者对它们进行一些更改以使它们脱颖而出。我假设通过绘制每个模型中的部件来设置它是一种繁琐的方式,但是一旦完成,引用它们应该很容易。如果可能的话,我也想跟回名单。如果我点击了部件号,它会突出显示特定部件所在的型号。提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这是一个基本的例子。

Demo

以下是命名范围(如果需要,可以直接用直接引用替换它们)

示例:将Range("PartList")更改为Range("G2:G7")

Named Ranges

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("PartList").Interior.ColorIndex = xlNone
Range("A2:A4").Interior.ColorIndex = xlNone
If Target.CountLarge <> 1 Then Exit Sub
If Not Intersect(Target, [A2:A4]) Is Nothing Then
    Dim z, Finder
    For Each z In Intersect(Target.EntireRow, Range("ModelList"))
        Set Finder = Nothing
        Set Finder = Range("PartList").Find(z.Value, lookat:=xlWhole)
        If Not Finder Is Nothing Then Finder.Interior.Color = RGB(180, 230, 180)
    Next z
ElseIf Not Intersect(Target, Range("PartList")) Is Nothing Then
    For Each z In Range("ModelList")
        'Continue would be nice but in this case we will just color it repeatedly
        If z.Value = Target.Value Then Cells(z.Row, "A").Interior.Color = RGB(180, 230, 180)
    Next z
End If

我们创建一个零件清单并将其命名为PartList

我还创建了一个模型列表,并将其部件命名为ModelList

当我们更改选择时,我们清除列表中的颜色。

如果他们只点击一个单元格......

如果该单元格在我们的模型范围A2:A4内,我们会搜索与该模型关联的所有零件并将其着色为绿色。

如果他们在PartList范围内点击,我们会查看我们的模型列表和颜色列A绿色(如果找到该部分)。