[[20120410104011]] 『同じであったら値を入力するマクロ』(勉強中) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『同じであったら値を入力するマクロ』(勉強中)
 (EX2010,XP)
 下の様な入力作業のマクロを教えて戴けないでしょうか?
 宜しくお願い致します。

 1.(min)を検索する。
 2.左2つ目のセルを見て、A列にある値と同じ場合
   (min)右側の値をB列に入力する。
 3.実際は200行程有ります。

 変換前
       A    B     K    L    M     N
  1              
  2             r01:   e  (min)  5.6
  3
  4             r02:   t  (min) 12.2
  5
  6  r01
  7  r01
  8  r02
  9
 10  r02
 11  r02

 変換後
       A    B     K    L    M     N
  1              
  2
  3
  4
  5
  6  r01  5.6
  7  r01  5.6
  8  r02 12.2
  9
 10  r02 12.2
 11  r02 12.2


K列とA列の値は厳密には一致していない(:の有無)ようですが、一応サンプルです。

Sub Sample()

    Set objDic = CreateObject("Scripting.Dictionary")
    For r = 1 To 5
        If Cells(r, "M").Value = "(min)" Then
            objDic(Cells(r, "K").Value) = Cells(r, "N").Value
'           objDic(Replace(Cells(r, "K").Value, ":", "")) = Cells(r, "N").Value  ' : が上の表にだけある場合はこっち
        End If
    Next
    For r = 6 To 200
        If objDic.Exists(Cells(r, "A").Value) Then
            Cells(r, "B").Value = objDic(Cells(r, "A").Value)
        End If
    Next
End Sub

上の表が大きくなければ VLOOKUP で出来そうな気もしますが。
(Mook)


 (Mook)さん サンプル有難う御座います。
 これを元に作成したいと思います。
 「なるほど!この様にやるのか?」って感じです。
 有難う御座いました。
 (勉強中) 

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.