检查单元格中的多个值
VBA noob回来了。 我需要帮助一些基本的东西,我想为你的专业人士在那里。
我有一个范围(列H)的值,如
P595349 saf XD P5933 LP XD P5955 GW1 (GG+W+P+E) XD
我想要的是一个公式或VBA代码,看看如果单元格中包含59和PD它应打印正确的列E,如果不是它应打印不正确的E列。
今天我只是一个开始,但我不知道如何添加第二个值(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
为什么不把它写成一个函数呢? 您可以在列E
使用=CheckValue(H1)
来输出您的要求
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
这一行应该足以让你的原始代码工作,但(未经testing):
If InStr(str, "XD")>0 And InStr(str, "59")>0 Then
你可以使用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