Excel VBA質問箱 IV

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

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


48958 / 76736 ←次へ | 前へ→

【32704】Re:条件付でVLOOKUP関数を適用する
発言  Kein  - 05/12/21(水) 2:59 -

引用なし
パスワード
   んーと・・さらに数式を簡素化することも追加して

Sub Get_MyData()
  Dim Sh1 As Worksheet, Sh2 As Worksheet
  Dim C As Range
  Dim Rnm As Long

  Set Sh1 = Worksheets("Sheet1")
  Set Sh2 = Worksheets("Sheet2")
  Sh1.Range("B2:D65536, AA:AA").ClearContents
  With Sh1.Range("A2", Sh1.Range("A65536").End(xlUp)).Offset(, 26)
   .Formula = "=MATCH($A2,Sheet2!$A:$A,0)"
   On Error Resume Next
   Intersect(.SpecialCells(3, 16).EntireRow, Sh1.Range("D:D")) _
   .Value = "該当なし !"
   On Error GoTo 0: On Error GoTo ELine
   For Each C In .SpecialCells(3, 1)
     Rnm = C.Value
     C.Offset(, -25).Resize(, 3).Value = _
     Sh2.Range(Sh2.Cells(Rnm, 2), Sh2.Cells(Rnm, 4)).Value
   Next
ELine:
   .ClearContents
  End With
  Set Sh1 = Nothing: Set Sh2 = Nothing
End Sub 

何が変わったかと言いますと、#N/Aエラーはエラーとして表示させ、SpecialCells
メソッドの第二引数で、そのエラーのセルを検出するようにしたのです。これで先の
コードより少しすっきりしますね。
0 hits

【32701】条件付でVLOOKUP関数を適用する mai×2 05/12/21(水) 1:21 質問
【32702】Re:条件付でVLOOKUP関数を適用する Kein 05/12/21(水) 2:47 回答
【32703】Re:条件付でVLOOKUP関数を適用する Kein 05/12/21(水) 2:52 発言
【32704】Re:条件付でVLOOKUP関数を適用する Kein 05/12/21(水) 2:59 発言
【33265】おそくなってしまい、大変申し訳ございませ... mai×2 06/1/6(金) 12:47 お礼

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