今天項目組的一個同事問我如何快速的找到一個Excel中第3列和第5列的值完全重復的值,我想了想雖然Excel中自帶查找重復值的功能,但是好像只能對同一列進行比較,所以就寫了一個VBA進行處理,VBA非常簡單,但效果不錯。
Sub FindDuplicatesInColumn() Dim lastRow As Long Dim matchFoundIndex As Long Dim iCntr As Long lastRow = 500 ' 初始化臨時列, 第7列用來存放結果,第8列將3 5兩列的值拼接起來,方便判斷 For iCntr = 2 To lastRow Cells(iCntr, 7) = "" Cells(iCntr, 8) = Cells(iCntr, 3) & Cells(iCntr, 5) Next iCntr For iCntr = 2 To lastRow If Cells(iCntr, 5) <> "" Then ' 判斷是否存在相等的拼接后的列,如果存在,則記錄到結果中 matchFoundIndex = WorksheetFunction.Match(Cells(iCntr, 8), Range("H1:H" & lastRow), 0) If iCntr <> matchFoundIndex Then Cells(iCntr, 7) = "Duplicate with " & matchFoundIndex End If End If Next iCntr End Sub
