2017-07-26 105 views
0

我想突出显示L2列L中的字体颜色为红色的重复邮政编码。我在网上做了一些研究,并相应地修改了代码,但他们工作不正常。vba方法对象错误的范围

我用F8它停在行y =工作表...我试图添加单词应用程序。在WorksheetFunction前面的,但它给我同样的错误。

Sub test() 
    Dim x, y, LR22 As Long 
    Dim zip As Worksheet 

    Set zip = Worksheets("Zip") 
    LR22 = zip.Cells(Rows.Count, "L").End(xlUp).Row 


    For x = 2 To LR22 
     If zip.Cells(x, 12) <> "" Then 
      y = WorksheetFunction.Match(zip.Cells(x, 12), zip.Range("L2:L" & L22), 0) 
      If x <> y Then 
       zip.Cells(x, 12).Font.Color = vbRed 
      End If 
     End If 
    Next x 
End Sub 
+3

将'L22'更改为'LR22'。并且添加'Option Explicit'作为代码模块的第一行 - 这将迫使你声明所有的变量,因此当你犯这样的错误时会通知你。 – YowE3K

+0

谢谢,但现在整个列表都是红色的.. – sc1324

+3

那么这是一个完全不同的问题 - 那就是“为什么当前单元格的值总是存在于包括当前单元格的范围内”,并且可以通过测试'x <> y + 1'。 (这是清晨,我仍在喝我的咖啡,但我认为这是原因。) – YowE3K

回答

0

你可以不用代码就做到这一点。对列L进行排序,然后添加条件格式公式A1 = A2。这将突出显示连续单元格中的重复条目。

+0

这将在列表按邮编排序时生效。虽然将公式更改为包含匹配函数可能会起作用。 – Tom