2017-02-24 23 views
1

私はVBAを使用してExcelシートの内容を検証しています。最初の列に一意の値が必要で、別の列の外部キーを使用してこれらの値の妥当性を判断できるようにする。これは私が一意のエントリを確認する必要があります:VBAコードでExcelの重複する列を強調表示

Private Sub Worksheet_Change(ByVal Target As Range) 

    If Application.CountIf(Range("A:A"), Target) > 1 Then 
     MsgBox "Duplicate Data", vbCritical, "Remove Data" 
     Target.Value = "" 
    End If 
End Sub 
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

End Sub 

これは、最初の行に重複するエントリを防止します。しかし、私が本当に望むのは、既に塗りつぶしたスプレッドシート上でマクロを実行して重複を検出し、無効なフィールドをハイライト表示させることです。

答えて

0

これはトリックを行う必要があります。

Sub sbHighlightDuplicatesInColumn() 
Dim lastCol As Long 
Dim matchFoundIndex As Long 
Dim iCntr As Long 

lastCol = Sheets("Sheet1").Range("A1").SpecialCells(xlCellTypeLastCell).Column 
For iCntr = 1 To lastCol 
    If Cells(1, iCntr) <> "" Then 
     matchFoundIndex = WorksheetFunction.Match(Cells(1, iCntr), Range(Cells(1, 1), Cells(1, iCntr)), 0) 
     If iCntr <> matchFoundIndex Then 
      Sheets("Sheet1").Cells(1, iCntr).Interior.Color = vbYellow 
     End If 
    End If 
Next 
End Sub 
+0

恐ろしいを!出来た。感謝@VBA_SQL_Programmerあなたの時間と労力のために。本当に感謝します –

+0

まったく問題ありません。私はあなたのために働いてうれしいです。 –

+0

ここに投稿した質問をお手伝いできますか?:http://stackoverflow.com/questions/42451868/setting-foreign-keys-constraint-in-excel-using-vba –

関連する問題