Excel: シート全体のすべてのセルの値を新しいシートにコピーし、並べ替えて重複を排除し、一意の値の単一のリストにします。

Excel: シート全体のすべてのセルの値を新しいシートにコピーし、並べ替えて重複を排除し、一意の値の単一のリストにします。

私が持っているデータ(すべてのテキスト値)はシート全体に散在しており(複数の行と列があり、間に隙間がある)、すべて数式を使用して計算されています。

ここで、計算された値の正確なリストが何であるかを確認したいと思います。

だから私がやるべきことはこれです

  • コピー値のみ新しいシートに
  • 1つのリスト(列)に整理する
  • 並べ替えと重複排除

答え1

次のようなことを試してみてください:

Sub Garlic()
   Dim cl As Collection, sh1 As Worksheet, sh2 As Worksheet
   Dim r As Range, K As Long, v As Variant, i As Long
   Set cl = New Collection
   Set sh1 = Sheets("Sheet1")
   Set sh2 = Sheets("Sheet2")
   K = 1

   On Error Resume Next
      For Each r In sh1.UsedRange
         v = r.Value
         If v <> "" Then
            cl.Add v, CStr(v)
         End If
      Next r
   On Error GoTo 0

   For i = 1 To cl.Count
      sh2.Cells(K, 1).Value = cl.Item(i)
      K = K + 1
   Next i

   sh2.Range("A1").CurrentRegion.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

End Sub

関連情報