我在VB宏中工作,其中AUT Excel包含5张纸。在第3张表中我有6列
在第5张。我有3个输入框和3个输出框。 如果用户从inputbox1,inputbox2和inputbox 3的第1列,第2列和第3列输入部分字符串,则相应的结果应显示在outputbox1,outputbox2,outputbox3
中但是如果输入字符串与具有更多值的数据进行比较,则代码不起作用。所以它就像在if条件下对这个值进行硬编码一样是不可行的。
`text3 Like "*NB" Or text3 Like
"*NS" Or text3 Like "*NF" Or text3 Like "*PE")`
我从没有显示结果的答案中得到了这段代码
`If (text1 Like ("*" & text4 & "*") And text2 Like ("*" & text5 & "*") And text3 Like ("*" & text6 & "*")) Then`
请告知我是否需要在IF条件中添加任何内容以匹配部分字符串
答案 0 :(得分:0)
您可能需要Like
运营商......
答案 1 :(得分:0)
为什么不使用Find
和FindNext
。这将找到匹配input1
的第一个实例,然后测试是否还满足input2
和input3
。如果是这样,它会设置您想要的值。如果没有,它会找到下一个可能的匹配。
Set Sheet1 = Worksheets(1)
Dim c As Range
Dim firstAddress As String
With Sheet1.Columns(1)
Set c = .Find(input1, lookat:=xlPart)
If Not c Is Nothing Then
firstAddress = c.Address
Do
If sheet3.Cells(c.Row, 2).Value2 = input2 And sheet3.Cells(c.Row, 3).Value2 = input3 Then
Sheet5.Cells(13, 3).Value2 = Sheet1.Cells(c.Row, 5).Value2
Sheet5.Cells(13, 6).Value2 = sheet2.Cells(c.Row, 6).Value2
Sheet5.Cells(13, 9).Value2 = sheet3.Cells(c.Row, 4).Value2
Exit Do
Else
Set c = .FindNext(c)
End If
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
答案 2 :(得分:0)
您是否尝试过如下
If (input1 Like ("*" & output4 & "*") And input2 Like ("*" & output5 & "*") And input3 Like ("*" & output6 & "*"))