Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


40733 / 76732 ←次へ | 前へ→

【41090】Re:お願いします。
回答  Kein  - 06/7/28(金) 21:50 -

引用なし
パスワード
   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

と、エラー値のところだけ抽出して、任意の値に書き換えればよいでしょう。
2 hits

【41046】お願いします。 どてかぼちゃ 06/7/28(金) 12:16 質問
【41048】Re:お願いします。 inoue 06/7/28(金) 12:41 発言
【41049】Re:お願いします。 注意 06/7/28(金) 12:42 発言
【41089】Re:お願いします。 Hirofumi 06/7/28(金) 21:15 回答
【41090】Re:お願いします。 Kein 06/7/28(金) 21:50 回答
【41091】Re:お願いします。 Kein 06/7/28(金) 21:52 発言

40733 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free