VBA noob回来了。我需要帮助一些基本的东西,我认为你们在那里的职业选手。
我有一个范围(列H),其值为
P595349 saf XD
P5933 LP XD
P5955 GW1 (GG+W+P+E) XD
我想要的是一个公式或VBA代码,看看单元格是否包含59和PD它应该在E列中打印正确,如果不是,它应该在E列中打印Not Correct。
我今天所拥有的只是一个开始但我不知道在这种情况下如何添加第二个值(59)。
Sub AddDashes()
With ThisWorkbook.Worksheets("sheet1")
Dim SrchRng As Range, cel As Range
Set SrchRng = Range("A:a")
For Each cel In SrchRng
If InStr(1, cel.Value, "PD") Then
cel.Offset(0, 3).Value = "Decided"
Else
cel.Offset(0, 3).Value = "not"
End If
Next cel
End With
End Sub
答案 0 :(得分:2)
为什么不把它写成函数呢?您可以在=CheckValue(H1)
列中使用E
来输出您的要求
Function CheckValue(str As String)
If InStr(str, "XD")>0 And InStr(str, "59")>0 Then
CheckValue = "Correct"
Exit Function
End If
CheckValue = "Not Correct"
End Function
<小时/> 仅此一行应足以使您的原始代码工作(未经测试):
If InStr(str, "XD")>0 And InStr(str, "59")>0 Then
答案 1 :(得分:2)
您可以使用Like
运算符和通配符*
尝试类似下面的代码。
Option Explicit
Sub AddDashes()
Dim SrchRng As Range, cel As Range
With ThisWorkbook.Worksheets("sheet1")
Set SrchRng = .Range("A:A") '<-- don't forget to fully qualify your Range
For Each cel In SrchRng
If cel.Value Like "*PD*" And cel.Value Like "*59*" Then
cel.Offset(0, 3).value = "Decided"
Else
cel.Offset(0, 3).value = "not"
End If
Next cel
End With
End Sub