|
Sheet2 の一行目は項目であるとして・・
Sub Get_MyDataNum()
With Sheets("Sheet2")
With Range("D2", .Range("D65536").End(xlUp))
.Formula = _
"=INDIRECT(ADDRESS(MATCH($D2,Sheet1!$B:$B,0),1,3,TRUE,""Sheet1""))"
.Copy
.PasteSpecial xlPasteValues
End With
.Activate
.Range("A1").Select
End With
Application.CutCopyMode = False
End Sub
>シート2の氏名がシート1の氏名になかったならば氏名がない事を
>シート2のC列に何かを記号を表記
見つからない場合は、#N/A というエラー値が表示されます。
もし他の表示にしたいなら、上記の数式を =IF(ISNA(数式),""表示値"",数式)
という形に変更するか
Sub Get_MyDataNum2()
With Sheets("Sheet2")
With Range("D2", .Range("D65536").End(xlUp))
.Formula = _
"=INDIRECT(ADDRESS(MATCH($D2,Sheet1!$B:$B,0),1,3,TRUE,""Sheet1""))"
.Copy
.PasteSpecial xlPasteValues
On Error Resume Next
.SpecialCells(2, 16).Value = "任意の表示値"
End With
On Error GoTo 0
.Activate
.Range("A1").Select
End With
Application.CutCopyMode = False
End Sub
と、エラー値のところだけ抽出して、任意の値に書き換えればよいでしょう。
|
|