2016-05-11 15 views
1

私は2つの列のすべてのセルを比較しようとしています。 セルにテキストと数字が含まれていて、2つのセル(それぞれ異なるブック)が異なる場合は、セルの1つをハイライト表示/色付け/塗りつぶしします。異なるワークブックの2列内のテキストを比較する

タスク:

1.1 - セル1 =こんにちは

1.1 - セル2 =こんにちは

だから、何のハイライトは、両方の値が

1.2等しく、ここでは必要ない - セル1 =こんにちは

1.2 - Cell2 = Hellod

ハイライトが、ここで必要とされ、両方の値が1に等しくない別の

注:セル1とセル2の両方が異なるワークブックにある

ここでは、私が持っているコードは、これまでのところです:

Sub DescriptionDiscrepency() 
オブジェクト
  • ターゲットパスにファイルの場所を設定し

    • 私のコードでは冗長ですが、皆さん

      のために役に立つかもしれない
      Target_Path = "C:\Users\Example.xlsm" 
      
      
      Set Target_Workbook = Workbooks("Example.xlsm") 
      Target_Workbook.Sheets("Sheet1").Unprotect Password:="****" 
      Set Source_Workbook = Workbooks("Example2.xlsm") 
      Source_Workbook.Sheets("Sheet1").Unprotect Password:="*****" 
      
      ターゲットから
      • 読み取りデータソースファイルが

        Target_Data = Target_Workbook.Sheets("Sheet1").Cells(2, 6).CurrentRegion.Rows.Count 
        Source_Data = Source_Workbook.Sheets("Sheet1`").Cells(5, 2).CurrentRegion.Rows.Count 
        
      • ハイライトをアップ一致する場合、CATの記述がで同じでないかどうかを確認するためにファイル私たちのステータストラッカー

      • この部分は

        が動作していません
        For i = 1 To lastRow 
        For j = 1 To lastRow 
            If Source_Data.Cells(j, 1).Value <> "" Then 
             If StrComp(Source_Data.Cells(j, 2).Value, 
              Target_Data.Cells(i, 6).Value, CompareMethod.Text) = 0 Then 
        
              Source_Data.Cells(j, 2).Interior.ColorIndex = RGB(255, 255, 255) 
              Source_Data.Cells(j, 2).Font.Color = RGB(0, 0, 0) 
        
             Else 
              Source_Data.Cells(j, 2).Interior.ColorIndex = RGB(0, 0, 0) 
              Source_Data.Cells(j, 2).Font.Color = RGB(255, 199, 206) 
             End If 
            End If 
        Next j 
        Next I 
        End Sub 
        
  • 答えて

    0

    あなたはいくつかのことを混合しています。つまり、範囲オブジェクト(Excelの実際のセル)と行数(単純な数値)です。

    はこのようにそれを試してみてください。

    Set Target_Data = Target_Workbook.Sheets("Sheet1").Cells(2, 6).CurrentRegion 
    Set Source_Data = Source_Workbook.Sheets("Sheet1`").Cells(5, 2).CurrentRegion 
    
    For i = 1 To Target_Data.Rows.Count 
    For j = 1 To Source_Data.Rows.Count 
        If Source_Data.Cells(j, 1).Value <> "" Then 
        If StrComp(Source_Data.Cells(j, 2).Value, Target_Data.Cells(i, 6).Value, vbTextCompare) = 0 Then 
    
         Source_Data.Cells(j, 2).Interior.Color = RGB(255, 255, 255) 
         Source_Data.Cells(j, 2).Font.Color = RGB(0, 0, 0) 
    
        Else 
         Source_Data.Cells(j, 2).Interior.Color = RGB(0, 0, 0) 
         Source_Data.Cells(j, 2).Font.Color = RGB(255, 199, 206) 
        End If 
        End If 
    Next j 
    Next I 
    End Sub 
    
    +0

    うーん、それは私のためにエラーを与えている:StrComp関数(Source_Data.Cells(J、2).Valueの、Target_Data.Cells(I、6).Valueの、CompareMethod場合.Text)= 0その後、オブジェクトに必要なエラーが発生しました – Theo

    +0

    StrComp(Source_Data.Cells(j、2).Value、Target_Data.Cells(i、6).Value、vbTextCompare)= 0の場合は、それから、CompareMethod.Textと一緒に使うのではなく、 – Theo

    +0

    ああ、そうです。私はComparemethod.Textがそこにあったのかしらと思っていましたが、クラスモジュールなどで何かがあったと思いました...私は答えを更新します。 :) – vacip

    関連する問題