[[20190301113110]] 『重複行の削除について』(ゆり) ページの最後に飛ぶ

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

 

『重複行の削除について』(ゆり)

 重複行の削除について質問です。

下記二つの処理では結果が違うのですが、
なぜ変わるのか教えていただきたいです。

1、ThisWorkbook.Worksheets("マクロ").Range("A1").CurrentRegion.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlNo '重複行削除

2、ThisWorkbook.Worksheets("マクロ").Range("A1").CurrentRegion.RemoveDuplicates Columns:=1, 2, 3, Header:=xlNo '重複行削除

a1より下記のデータが入っており、

決済ok 2017/1/1 2017/12/31
決済ok 2017/1/1 2017/12/31
決済ok 2017/1/1 2017/12/31
決済ok 2017/1/1 2017/12/31
決済ok 2017/1/1 2017/12/31
決済ok 2017/1/1 2017/12/31
決済ok 2017/1/1 2018/12/1
決済ok 2017/1/1 2018/12/1
借1ヶ月 2019/3/1 2019/12/31

1の処理では、下記のようにちゃんと重複削除でき、
決済ok 2017/1/1 2017/12/31
決済ok 2017/1/1 2018/12/1
借1ヶ月 2019/3/1 2019/12/31

2の処理では、下記のように「借1ヶ月の」データも無くなってしまいます。
決済ok 2017/1/1 2017/12/31
決済ok 2017/1/1 2018/12/1

どなたか理由を教えて頂ければと思います。
どうぞ宜しくお願いします。

< 使用 Excel:Excel2013、使用 OS:Windows10 >


 ヘルプでRemoveDuplicatesを確認してみてくれ。
 Columnsには
 >重複した情報を含む列のインデックスの配列を指定します。
 とある。
 また、,は引数の区切りになるので
 Columns:=1, 2, 3
 だとColumnsに与えられるのは1だけとなる。
(ねむねむ) 2019/03/01(金) 11:50

なるほど!!!
そういうことでしたか…ありがとうございます!
(ゆり) 2019/03/01(金) 11:52

 うん?
ThisWorkbook.Worksheets("マクロ").Range("A1").CurrentRegion.RemoveDuplicates Columns:=1, 2, 3,Header:=xlNo '重複行削除 
 こちらはそもそもコンパイルエラーにならないか?
(ねむねむ) 2019/03/01(金) 11:53

確かにそうですね。。
今色々検証してみたのですが、再現できずでした。
(直ぐに修正に入って、配列使わず複数列指定していたことは覚えているのですが、
どうやって書いていたか思い出せずでして。。)
(マクロン) 2019/03/01(金) 13:15

あ、別PCで投稿していたので名前変わってしまいました。
マクロン=ゆりです。
(マクロン) 2019/03/01(金) 13:32

コメント返信:

[ 一覧(最新更新順) ]


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