我有一个包含2个工作表的Excel工作簿。 "发票"和"产品"。
In" Invoice"我有几列,A("ID")
,B("DESIGN")
,这是从产品表和C("QTE")
等中选择的列表。它看起来像这样:
A B C D ...
---------------------
100 AR
110 BR
120 CR
130 DR
"产品"我还有其他列A("ID")
和B("DESIGN")
,C("NAME")
,D("TYPE")
。它看起来像这样:
A B C D
----------------------
10 AR NAME1 TY1
20 BR NAME2 TY2
30 CR NAME3 TY2
40 DR NAME4 TY1
所以,当我选择DESIGN
In" Invoice"表(B列),我需要检查并在特定单元格中返回true / false如果所选DESIGN
的类型为TY1
示例:
在发票表中:如果我选择AR
为DESIGN
,我希望特定的单元格返回true(因为AR
属于TYPE=TY1
)
在发票表中:如果我选择BR
为DESIGN
,我希望特定的单元格返回false(因为BR
是TYPE!=TY1
)
有办法吗?
答案 0 :(得分:0)
这可能有效。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim sWhatToLook As String
Dim rng1 As Range
Dim strSearch As String
If Target.Column = 2 Then 'for the code to execute clicking on column B only
sWhatToLook = Target.Value
Set rng1 = Worksheets("Products").Range("A2:D1000").Find(sWhatToLook, , xlValues, xlWhole) 'Set range (A2:D1000) as needed
If Not rng1 Is Nothing Then
If (rng1.Offset(0, 2).Value = "TY1") Then
Worksheets("Invoice").Cells(Target.Row, 5) = True
Else
Worksheets("Invoice").Cells(Target.Row, 5) = False
End If
Else
MsgBox sWhatToLook & " not found"
End If
End If
End Sub