範囲内の各セルと値を比較しようとしています。一致したら、別の変数を 3 列分オフセットした古い値に設定したいと思います。
For Each i In Worksheets("SFDC Input").Range("D2:D20").Cells
If ProductFamily = i Then
i.Offset(0, -3).Value = ID
End If
Next
ProductFamily は、i と比較している値です。IDを値の所有者にしたい。
割り当て ( =) が逆になっているようです。値に設定するのではなく、に設定i.Offset(0, -3).Valueしています。IDID
次のことを試してください。
ID = i.Offset(0, -3).Value
MSDNから:
= 演算子は、右側の値を左側の変数またはプロパティに代入します。