2017-07-26 86 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

相關問題