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