[[20140726164633]] 『列の比較』(TBOLAN) ページの最後に飛ぶ

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

 

『列の比較』(TBOLAN)

よろしくお願いします。

実現したいことは、sheet1のA列とsheet2のA列を比較し、sheet2のA列だけにあった
物をA列のデータの最後のデータの次の行ににコピーしてはりつけたいのです。

ifとFindを組み合わせるところまでは想像がつくのですが、
なかなか実現できません。おしえいていただけましたら幸いです。

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


マクロだと、Dictionaryを使うのが簡単なのですが、
関数の場合、私には可能かどうかもわかりません。

 Sub test()
    Dim dic As Object
    Dim c As Range
    Dim r As Long
    Dim i As Long

    Set dic = CreateObject("scripting.dictionary")

    With Sheets("Sheet2")
        For Each c In .Range("A1", .Range("A1").End(xlDown))
            dic(c.Value) = Empty
        Next
    End With

    With Sheets("Sheet1")
        r = .Range("A1").End(xlDown).Row
        For Each c In .Range("A1:A" & r)
            If dic.exists(c.Value) Then dic.Remove (c.Value)
        Next

        For i = 1 To dic.Count
            .Range("A" & r + i).Value = dic.keys()(i - 1)
        Next
    End With

 End Sub

(マナ) 2014/07/26(土) 23:07


 VBAなら

 Sub test()
    Dim x
    With Sheets("sheet1")
        x = Filter(.[transpose(if((sheet2!a1:a10000<>"")*(iserror(match(sheet2!a1:a10000,a1:a10000,0))),sheet2!a1:a1000,char(2)))], Chr(2), 0)
        If UBound(x) > -1 Then .Range("a" & .Rows.Count).End(xlUp)(2).Resize(UBound(x) + 1).Value = Application.Transpose(x)
    End With
End Sub
修正 04:04
(seiya) 2014/07/28(月) 03:45

コメント返信:

[ 一覧(最新更新順) ]


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