首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >相似语句的相反

相似语句的相反
EN

Stack Overflow用户
提问于 2016-03-08 21:30:58
回答 2查看 1.8K关注 0票数 1

我在让If NOT Like代码工作时遇到了一些问题。

下面是编码的一部分。似乎编码带来了第二条记录,其中有铁路在实地正在被检查,但没有一个记录之前的轨道,或在那次之后。

在现实中,它应该带来的记录,不包含铁路在该领域的任何地方,但它也不这样做。如有任何反馈,将不胜感激。

代码语言:javascript
运行
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-08 21:35:15

您应该使用括号或逻辑来显式地说明您所追求的目标。

代码语言:javascript
运行
复制
If Not rngData.Cells(i, 11).Value = "SUPPLIER A" And rngData.Cells(i, 6).Value Like "*RAIL*" Then

是相同的

代码语言:javascript
运行
复制
If Not A And B

当你想要的时候

代码语言:javascript
运行
复制
If Not A And Not B
票数 10
EN

Stack Overflow用户

发布于 2016-03-09 11:34:59

作为VBA doesn't short circuit,最好按照下面的方式编写逻辑,首先使用更可能的False条件(这样冗余的第二个测试就不会运行)。

所以

If Not A Then If Not B

或者在你的情况下;

代码语言:javascript
运行
复制
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 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35878432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档