LIKE语句的对面

我有一些问题得到一个If NOT Like代码工作。

下面是编码的一部分。 看起来这个编码正在带来第二张有着铁轨的纪录,但是没有一张在这之前或之后的铁轨。

实际上,它应该带来在那个领域的任何地方都不包含铁路的logging,但是它也不会这样做。 任何反馈意见。

 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 

由于VBA 不会短路,所以最好先写下如下的逻辑,最好使用False条件(所以冗余的第二个testing不运行)。

所以

If Not A Then If Not 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