Excel VBA質問箱 IV

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

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


1165 / 13645 ツリー ←次へ | 前へ→

【75921】『F列とP列に同じ名前がある場合、Q、R列にG列とH列の数値を貼り付け... 愛子 14/8/5(火) 19:28 発言[未読]
【75923】Re:『F列とP列に同じ名前がある場合、・... マルチネス 14/8/5(火) 20:10 発言[未読]
【75924】Re:『F列とP列に同じ名前がある場合、Q... マナ 14/8/5(火) 20:57 発言[未読]
【75925】Re:『F列とP列に同じ名前がある場合、Q... マナ 14/8/5(火) 21:05 発言[未読]
【75927】Re:『F列とP列に同じ名前がある場合、Q... マナ 14/8/5(火) 21:36 発言[未読]
【75926】Re:『F列とP列に同じ名前がある場合、Q... マルチネス 14/8/5(火) 21:06 発言[未読]

【75921】『F列とP列に同じ名前がある場合、Q、...
発言  愛子  - 14/8/5(火) 19:28 -

引用なし
パスワード
   お世話になります。

F列は当日勤務した従業員の名前が並んでいます。G列はF列の人の出勤時間の数値(例えば8.5 9.0)H列は退勤の数値が並んでいます。P列は従業員全ての名前が並んでいます。F列の人とP列の人の名前が一致しましたらQ、R列にG列とH列の数値を貼り付ける方法を教えて頂けますか?


よろしくお願いいたします。


< 使用 Excel:Excel2007、使用 OS:Windows7 >

【75923】Re:『F列とP列に同じ名前がある場合、...
発言  マルチネス  - 14/8/5(火) 20:10 -

引用なし
パスワード
   回答者への参考として。

ht tp://www.excel.studio-kazu.jp/cgi-bin/kazuwiki2.cgi

【75924】Re:『F列とP列に同じ名前がある場合、...
発言  マナ  - 14/8/5(火) 20:57 -

引用なし
パスワード
   私がコメントしたせいで?マルチと誤解されたようで申し訳ありません。
関数で十分かと思いますが、お詫びに。参考コードです。
なお関数と違い、マクロの質問では丸投げは嫌われるようです。
質問の仕方で、回答が得にくいこともあるかもしれません。

Sub test()
  Dim i As Long
  
  For i = 2 To Range("P" & Rows.Count).End(xlUp).Row
    If Range("P" & i).Value = Range("F" & i).Value Then
      Range("Q" & i).Resize(, 2).Value = Range("G" & i).Resize(, 2).Value
    End If
  Next
  
End Sub

【75925】Re:『F列とP列に同じ名前がある場合、...
発言  マナ  - 14/8/5(火) 21:05 -

引用なし
パスワード
   質問文を読みなおしてみたら、上の回答は勘違いしているようですね。
無視して下さい。

【75926】Re:『F列とP列に同じ名前がある場合、...
発言  マルチネス  - 14/8/5(火) 21:06 -

引用なし
パスワード
   あちらもこちらもマルチポストは禁止されていない。あくまでも「回答者」への参考として
リンクしたまでである。

【75927】Re:『F列とP列に同じ名前がある場合、...
発言  マナ  - 14/8/5(火) 21:36 -

引用なし
パスワード
   修正版です。コードの意味は自分で調べて下さい。

Sub test()
  Dim 社員リスト As Range
  Dim 出勤者リスト As Range
  Dim c As Range
  Dim r
  
  Set 社員リスト = Range("P2", Range("P" & Rows.Count).End(xlUp))
  Set 出勤者リスト = Range("F2", Range("F" & Rows.Count).End(xlUp))
  
  社員リスト.Offset(, 1).Resize(, 2).ClearContents
  
  For Each c In 出勤者リスト
    r = Application.Match(c, 社員リスト, 0)
    If IsNumeric(r) Then
      社員リスト(r).Offset(, 1).Resize(, 2).Value = c.Offset(, 1).Resize(, 2).Value
    End If
  Next
  
End Sub

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