[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『RemoveDuplicatesで重複した「列」を削除したい』(列)
シート2のセルC3からD3,E3,F3と横方向に並んだ日付、最終列までの範囲で重複セルを削除したいのですが下記コードの「Selection.RemoveDuplicates Columns:=a, Header:=xlNo」で実行時エラー'1004'アプリケーション定義またはオブジェクト定義のエラーでできません。解決策を教えてください。
Sub test1()
Dim a As Variant
a = Worksheets(2).Cells(3,Columns.Count).End(xlToLeft).Column Selection.RemoveDuplicates Columns:=a, Header:=xlNo End Sub
< 使用 Excel:Office365、使用 OS:Windows10 >
どこか作業セルに行列入れ替えて張り付けてから重複削除後元に戻す?
(コメン) 2022/12/05(月) 00:39:08
365ならUNIQUE関数が使えると思います。 私は持っていないので、Dictionaryを使ってみました。
Sub test2() Dim dic As Object Dim rng As Range, r As Range Set dic = CreateObject("scripting.dictionary") With Worksheets(2) Set rng = .Range("C3", .Cells(3, Columns.Count).End(xlToLeft)) End With For Each r In rng If Not dic.exists(r.Value) Then dic.Add r.Value, "" End If Next With rng .ClearContents .Cells(1).Resize(, dic.Count) = dic.keys End With End Sub
似たような質問がありますね。 こちらの続きだとするなら、最初に重複削除してから転記するとか? [[20221204184519]] (酢飯) 2022/12/05(月) 07:15:21
酢飯さんも提案されているUNIQUE関数を使ったコード例
Sub test3() Dim rng As Range With Worksheets(2) Set rng = .Range("C3", .Cells(3, Columns.Count).End(xlToLeft)) End With Dim a a = WorksheetFunction.Unique(rng, True) rng.ClearContents rng.Resize(, UBound(a)).Value = a End Sub (hatena) 2022/12/05(月) 16:20:19
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.