|
VBAで実行するなら・・・。
Sub Sample()
Dim Int_Row As Long, Int_Key As Long
Dim Rng_Key As Range
'Sheets("SHEET1").Cells(65536, 2).End(xlUp).Row : シート1の B65536 を基点に上方向に値を持つ最後の行の行番号を返します。
'変数 Int_Row は 1〜 B列の最終行迄1づつカウントアップ
For Int_Row = 1 To Sheets("SHEET1").Cells(65536, 2).End(xlUp).Row Step 1
'A列が空白で無い場合には SHEET2のA列にて同じ値を持つセルを検索し 変数 Rng_Key に 格納
If Sheets("SHEET1").Cells(Int_Row, 1).Value <> "" Then
Set Rng_Key = Sheets("SHEET2").Columns(1).Find(Sheets("SHEET1").Cells(Int_Row, 1).Value)
'SHEET2のA列にて同じ値を持つ行が無かった場合 変数 Int_Key に0を 格納
If Rng_Key Is Nothing Then
Int_Key = 0
Else
'SHEET2のA列にて同じ値を持つ行が有った場合 変数 Int_Key に B 列の値を 格納
Int_Key = Rng_Key.Offset(0, 1).Value
End If
'Rng_Key Objectの開放
Set Rng_Key = Nothing
End If
'SHEET1の Int_Row 行 B列の値が 空白でない場合
If Sheets("SHEET1").Cells(Int_Row, 2).Value <> "" Then
'変数 Int_Key を Int_Row 行 C列に書き出し
Sheets("SHEET1").Cells(Int_Row, 3).Value = Int_Key
End If
Next Int_Row
End Sub
|
|