dポイントプレゼントキャンペーン実施中!

マクロの説明
1.Sub Sample7()はsheet4の列をソートするマクロです。
(単独では、このマクロでソートできる)
2.Sub sample2()はsheet4のソート以外は完成しています。


やりたいこと

Sub sample2()の中にsheet4の重複データを削除したもののソートのコードを組み込みたい。

但し、組み込むとしてSub Sample7()のコードでよいのか、初心者なのでよくわかりません。


なお、Sub sample2()のマクロは途中省いています。

Sub Sample7()
Sheets("sheet4").Range("A1:A1135").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes
End Sub



Sub sample2()
Dim data As Variant 'データコピー用の使いまわし配列
Dim dic As Object
Dim i As Long
Set dic = CreateObject("Scripting.Dictionary")
'Sheet4~5のA列をリセット
Sheets("Sheet4").Range("A2:A" & Rows.Count).ClearContents
Sheets("Sheet5").Range("C3:C" & Rows.Count).ClearContents
   
       ↓↓↓↓↓↓↓↓↓↓↓↓↓↓

'Sheet4に重複していないデータを書き込み
With Sheets("Sheet4")
.Cells(Rows.Count, "A").End(xlUp).Offset(1).Resize(dic.Count).Value = Application.Transpose(dic.keys)

'Sheet4のC列をSheet5にコピー
data = .Range("C2:C" & .Cells(Rows.Count, "A").End(xlUp).Row).Value
End With
Sheets("Sheet5").Range("C3").Resize(UBound(data)).Value = data
Set dic = Nothing
End Sub

質問者からの補足コメント

  • どう思う?

    ソートは昇順で行いたいと思っています。

      補足日時:2019/01/19 22:24

A 回答 (1件)

其れなら、


Sheet4 該当域を、
選択、
開発タブで 操作を記録、
範囲を ソート、
記録を 停止し、
作成された コードを、
加工し、
コードに 組み込む。


此で 良いのでは?


どの道、
クイックソートか、マージソートか、二分木ソートを、
自ら 組むか、

シートで 用意されている、
ソートを、
コード上で 利用するか、

に なりますから。


因みに、
私が 組んだ、
マージソート的なもの、
https://1drv.ms/x/s!AjviygfJDgV_2WDOHwkcflod9UaU

Excelで 開き、
ローカルに 別名保存すれば、
閲覧、編集が、
可能に なると、
思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2019/01/21 18:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!