2017-02-07 3 views
0

私は2つのワークシートの間のデータを比較しようとしています。各ワークシートには3つの列があります.Aは顧客とSKUの連結、Bは販売数量、Cは金額不一致の測定用です。私は2つのことを行い、Sheet2にないSKUのSheet1をチェックし、両方のシートでSKUが一致すれば、量の違いを確認します。 Sheet1にSheet2にないSKUがある場合は、そのレコードを強調表示します。私はこれを原始的なやり方で達成しました、行全体が強調表示されます。しかし、お客様の& SKUが一致すれば、ボリュームをチェックするコードを取得するのに問題があります。私はVBAがチェックしていたセルの値を保持することを望んでいました。どこが間違っていて、適切な実装は何ですか?このようなn00bのために申し訳ありません。VBAと値を渡す

サブ再び()

Dim lastRow As Integer 
Dim rng As Range 
lastRow = Sheets("Sheet1").Range("A65000").End(xlUp).Row 

For i = 1 To lastRow 
    Set rng = Sheets("sheet2").Range("A:A").Find(Sheets("Sheet1").Cells(i, 1)) 
    If rng Is Nothing Then 
     Sheets("Sheet1").Cells(i, 3) = "Item not in sheet2" 
     Sheets("Sheet1").Cells(i, 1).EntireRow.Interior.Color = vbRed 
    ElseIf Not rng Is Nothing Then 
     If Sheets("sheet1").Cells(i, 2).Value - Sheets("sheet2").Cells(i, 2).Value < -5 Then 
      Sheets("sheet1").Cells(i, 3) = "Sheet2 reports " & Sheets("sheet1").Cells(i, 2).Value - Sheets("sheet2").Cells(i, 2).Value & " more units of volume." 
     ElseIf Sheets("sheet1").Cells(i, 2) - Sheets("sheet2").Cells(i, 2) > 5 Then 
      Sheets("sheet1").Cells(i, 3) = "Sheet1 reports " & Sheets("sheet1").Cells(i, 2) - Sheets("sheet2").Cells(i, 2) & " more units of volume." 
     Else: Sheets("sheet1").Cells(i, 3) = "No or insignificant discrepancy" 
     End If 
    End If 
Next 

End Subの

+0

あなたは 'どこかで再びその変数RNGを使用してください.... ='設定RNGと一致する範囲を見つけました! 'Dim foundRangeRow as long .... foundRangeRow = rng.Row ...'のようになります。 – MacroMarc

答えて

-3

変数。 ...あなたの質問が正しく理解できれば。

dim myString as String dim myFloat as Float

+0

これはどのようにOPに答えますか?彼は「顧客とSKUが一致すれば、ボリュームをチェックするコードを取得することができず、どこが間違っていて、適切な実装が何かを知りたがっていますか?彼はmyStringやmyFloatを使用しません。 Excel VBAにはFloatデータ型がありません。 –

関連する問題