从if语句macrosvba中排除某些单元格值

我有一个运行3000 ++行数据的macros,我想创build一个排除列表,所以例如当我的if语句去查看一个范围,如果它匹配一个特定的名称,它跳过那一行继续。

例子是:

如果列A的值为“J史密斯”让它跳过那一行并继续,那么姓氏已经改变为“史密斯”,但这些可能会有所不同。

如果我从macros中删除代码,它完美的工作,没有任何问题,但它只要我添加它给我一点灵活性与它死的数据:

If Range("A" & r).Value = "C Hopcroft" Or "M Pyatt" Or "D Freeman" Or "D Jolley" Or "A Marsh" Or "M Heslop" Or "K Knowles" Or "J Robertson" Or "D Wood" Then r = r + 1 Else 

除了当它发现A列内的名字何时崩溃的types不匹配,但名称似乎完全匹配,如果我把鼠标hover在“如果范围(”A“&R).Value它给了我正确的价值如果我从数据中删除名称是看看macros将完美完成。

有任何想法吗?

我的macros代码如下:

 Sub unusedMacro() Dim lr As Long, lr2 As Long, r As Long Set Sh1 = ThisWorkbook.Worksheets("Depot Dashboard") Set Sh2 = ThisWorkbook.Worksheets("Summary Data") Sh2.Select lr = Sh2.Cells(Rows.Count, "A").End(xlUp).Row x = 39 For r = 2 To lr If Range("C" & r) = "TRUE" Then If Range("N" & r).Value = Worksheets("Depot Dashboard").Range("B17") Then If Range("A" & r).Value = "C Hopcroft" Or "M Pyatt" Or "D Freeman" Or "D Jolley" Or "A Marsh" Or "M Heslop" Or "K Knowles" Or "J Robertson" Or "D Wood" Then r = r + 1 Else Sh2.Cells(r, 15).Copy Sh1.Cells(x, 7).PasteSpecial xlPasteValues 'Date Sh2.Cells(r, 1).Copy Sh1.Cells(x, 8).PasteSpecial xlPasteValues 'Name Sh2.Cells(r, 28).Copy Sh1.Cells(x, 9).PasteSpecial xlPasteValues 'Turn ID Sh2.Cells(r, 29).Copy Sh1.Cells(x, 10).PasteSpecial xlPasteValues 'Turn Desc x = x + 1 End If End If End If Next r Sh1.Select Set Sh1 = Nothing Set Sh2 = Nothing Set x = Nothing End Sub 

IF语句的IF行必须返回Boolean值[True,False]。 现在, If Range("A" & r).Value = "C Hopcroft" Or "M Pyatt" Or "D Freeman" Or "D Jolley"一个testing返回布尔值,但其他。 要纠正它,每个string(名称)必须针对单元格中的值进行testing。

例如:

 If Range("A" & r).Value = "C Hopcroft" Or Range("A" & r).value = "M Pyatt" Or Range("A" & r).value) = "D Freeman" Or Range("A" & r).value = "D Jolley" 

这是否解决了这个问题?