2017-12-25 58 views
0

私は私の列のいずれかの重複があるかどうかを確認したい、私は手動で条件付き書式を設定し、その後、私は次のテストを行った:Range.DisplayFormat方法やVBA Excel 2007の

  If cell2.DisplayFormat.Interior.Color <> RGB(255, 199, 206) Then 

       Label8.Caption = cell2.Offset(, 2).Text 
       Label9.Caption = cell2.Offset(, 3).Text 
       Label10.Caption = cell2.Offset(, 4).Text 
       Label12.Caption = cell2.Offset(, 5).Text 
       Label13.Caption = cell2.Offset(, 6).Text 
       Label28.Caption = cell2.Offset(, 7).Text 
       Label30.Caption = cell2.Offset(, 8).Text 
       CommandButton2.Enabled = True 

      Else 
       cell2.Value = "" 
       MsgBox "Votre bac existe déjà", vbExclamation, "Bac double" 
       Me.TextBox1.Value = "" 
       Me.TextBox1.SetFocus 

      End If 

問題はそのIでありますExcel 2007を使用しており、これはRange.DisplayFormatメソッドをサポートしていないので、私は必要なものを、次のいずれかです。

  • Range.DisplayFormat方法に代わります。 OR
  • 条件付き書式を使用せずに重複をテストする別の方法。

ありがとうございました!

+0

あなたがinbuiltハイライトを使用することができない何らかの理由は、条件付き書式設定の機能をGomeタブで複製しますか? – QHarr

+0

私はそれを使用しています、私のコードは条件付きの書式なしで実行することはできません。問題は、Excel 2007では 'Range.DisplayFormat'メソッドでチェックすることができないということです。 –

答えて

0

あなたは作り付けの条件付き書式機能を使用することができます

どちらか )ハイライトして

それとも )を使用したコードあなたのフォーマットHome > Conditional Formatting > Highlight cell rules > Duplicate Valuesに移動し、選択する領域を選択次のようになります。

Sub findDupsInMyCol() 

    Dim wb As Workbook 
    Dim ws As Worksheet 
    Dim rngSelection As Range 
    Dim lastRow As Long 

    Set wb = ThisWorkbook 
    Set ws = wb.Worksheets("Data") 
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 'find last used row number 
    Set rngSelection = ws.Range("A1:A" & lastRow) 'set target range 
    ws.Activate 
    FormatDups rngSelection 

End Sub 


Sub FormatDups(ByRef rngSelected As Range) 

    rngSelected.FormatConditions.AddUniqueValues 
    rngSelected.FormatConditions(rngSelected.FormatConditions.Count).SetFirstPriority 
    With rngSelected.FormatConditions(1) 
     .DupeUnique = xlDuplicate 
     .Font.Color = -16383844 
     .Interior.PatternColorIndex = xlAutomatic 
     .Interior.Color = 13551615 
     .StopIfTrue = False 
    End With 

End Sub 
+0

コードをありがとう、本当に貴重ですが、私が望むのはブールチェック(TrueまたはFalseを返す)を行い、範囲と値を入力します。 –

+0

この情報はどこから返されますか?おそらく、条件付き書式をどのように適用するかによって、.FormatConditions(1).Interiorプロパティ(たとえば、2007年の重複の重複機能を使用して設定されたもの)を確認することができます。並べ替え、私のコードの反転、設定ではなく、それらの設定をテストする(手動でそれらを適用した)。このテストを行う範囲をループし、見つかった範囲とその値を辞書に格納することができます。 – QHarr

関連する問題