[[20160617131109]] 『別シート参照』(ぷんぷん) ページの最後に飛ぶ

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

 

『別シート参照』(ぷんぷん)

教えてください

sheet BのA列とsheet FPのA列を参照して
FPに値が合った場合
sheet BのG列からM列までのデータを
sheet FPのF列から貼り付けたいです

宜しくお願いいたします

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


 こんなことですか?

 Sub Sample()
    Dim c As Range
    Dim r As Range
    Dim f As Range

    With Sheets("B")
        Set r = .Range("A1", .Range("A" & Rows.Count).End(xlUp))
    End With

    With Sheets("FP")
        For Each c In .Range("A1", .Range("A" & Rows.Count).End(xlUp))
            Set f = r.Find(What:=c.Value, lookat:=xlWhole)
            If f Is Nothing Then
                c.EntireRow.Range("F1:L1").ClearContents
            Else
                c.EntireRow.Range("F1:L1").Value = f.EntireRow.Range("G1:M1").Value
            End If
        Next
    End With

 End Sub

(β) 2016/06/17(金) 17:02


 アップずみのものより、ほんのちょっと効率がいいかも。

 Sub Sample2()
    Dim c As Range
    Dim r As Range
    Dim f As Range
    Dim dic As Object
    Dim b(1 To 7, 1 To 1) As Variant

    Set dic = CreateObject("Scripting.Dictionary")

    With Sheets("B")
        For Each c In .Range("A1", .Range("A" & Rows.Count).End(xlUp))
            dic(c.Value) = c.EntireRow.Range("G1:M1").Value
        Next
    End With

    With Sheets("FP")
        For Each c In .Range("A1", .Range("A" & Rows.Count).End(xlUp))
            If dic.exists(c.Value) Then
                c.EntireRow.Range("F1:L1").Value = dic(c.Value)
            Else
                c.EntireRow.Range("F1:L1").ClearContents
            End If
        Next
    End With

 End Sub

(β) 2016/06/17(金) 17:12


β様

有難う御座いました

助かりました

後のことを考えて教えてほしいのですが

例えば FPシート参照先をcの場合だと

A1をC1に変更すればいいのでしょうか

 For Each c In .Range("A1", .Range("A" & Rows.Count).End(xlUp))

宜しくお願いいたします
(ぷんぷん) 2016/06/17(金) 19:22


 はい。

 "A1" を "C1" に、それと、 "A" を "C" に。

(β) 2016/06/17(金) 19:38


β様
有難う御座います
(ぷんぷん) 2016/06/17(金) 22:34

コメント返信:

[ 一覧(最新更新順) ]


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