Vba LIKE语句的对立面

Vba LIKE语句的对立面,vba,excel,Vba,Excel,如果不喜欢代码,我在获取代码时遇到了一些问题 下面是编码的一部分。似乎编码带来了第二条记录,该记录在被查看的字段中有Rail,但没有一条记录在该记录之前或之后有Rail 事实上,它应该带来在该领域任何地方都不包含rail的记录,但它也不这样做。任何反馈都将不胜感激 Set rngData = Intersect(wsData.UsedRange, wsData.Range("A:K")) j = 1 rngData.Rows(1).Copy Destination:=wsGal

如果不喜欢代码,我在获取代码时遇到了一些问题

下面是编码的一部分。似乎编码带来了第二条记录,该记录在被查看的字段中有Rail,但没有一条记录在该记录之前或之后有Rail

事实上,它应该带来在该领域任何地方都不包含rail的记录,但它也不这样做。任何反馈都将不胜感激

Set rngData = Intersect(wsData.UsedRange, wsData.Range("A:K"))

    j = 1
    rngData.Rows(1).Copy Destination:=wsGalreq.Cells(j, 1)

    For i = 2 To rngData.Rows.Count
        If Not rngData.Cells(i, 11).Value = "SUPPLIER A" And rngData.Cells(i, 6).Value Like "*RAIL*" Then
            j = j + 1
            rngData.Rows(i).Copy Destination:=wsGalreq.Cells(j, 1)
        End If
    Next

您应该使用括号或逻辑来明确说明您的目标

If Not rngData.Cells(i, 11).Value = "SUPPLIER A" And rngData.Cells(i, 6).Value Like "*RAIL*" Then

If Not A And B
当你想要的时候

If Not A And Not B

您应该使用括号或逻辑来明确说明您的目标

If Not rngData.Cells(i, 11).Value = "SUPPLIER A" And rngData.Cells(i, 6).Value Like "*RAIL*" Then

If Not A And B
当你想要的时候

If Not A And Not B
作为VBA,最好先用更可能出现错误的条件编写如下逻辑(这样就不会运行冗余的第二个测试)

所以

如果不是一个
如果不是B

或者在你的情况下

If Not rngData.Cells(i, 11).Value = "SUPPLIER A" Then
    If Not rngData.Cells(i, 6).Value Like "*RAIL*" Then
            j = j + 1
            rngData.Rows(i).Copy Destination:=wsGalreq.Cells(j, 1)
    End If
 End If 
作为VBA,最好先用更可能出现错误的条件编写如下逻辑(这样就不会运行冗余的第二个测试)

所以

如果不是一个
如果不是B

或者在你的情况下

If Not rngData.Cells(i, 11).Value = "SUPPLIER A" Then
    If Not rngData.Cells(i, 6).Value Like "*RAIL*" Then
            j = j + 1
            rngData.Rows(i).Copy Destination:=wsGalreq.Cells(j, 1)
    End If
 End If 

或者它可以是
IF Not(A和B)
Perfect@alexmcmillan,我可以使用:IF A和Not B,因为我实际上希望它选择供应商A记录,但不选择描述中包含“Rail”的记录。谢谢或者它可以是
IF Not(A和B)
Perfect@alexmcmillan,我可以使用:IF A和Not B,因为我实际上希望它选择供应商A记录,但不选择描述中包含“Rail”的记录。谢谢这是VBA中的供将来参考这是VBA中的供将来参考