最近、Stack Overflow で非常に優れたスクリプトを見つけました。それは見事に機能しますが、少し調整したいと思います - 私のスキルではまだこの種の VBA で遊ぶことはできません. 今まで、私はこのコードの作り直しに失敗しただけです。
私の目標は、このスクリプトにその機能を実行させることですが、固定された場所から実行することです。そのため、「質問ボックス」で選択するのではなく、データ範囲をコピーしたくありません。例: 次A1:A200
のように別のタブに貼り付けます。DATA!A1:A200
私たちを手伝ってくれますか?
そしてコード:
Sub ListUniqueValues()
'lists the unique values found in a user-defined range into a
'user-defined columnar range
Dim SearchRng As Range
Dim ResultRng As Range
Dim Cel As Range
Dim iRow As Long
Set SearchRng = Application.InputBox("Select search range", _
"Find Unique Values", Type:=8)
Do
Set ResultRng = Application.InputBox("Select results columnar range", _
"Write Unique Values", Type:=8)
Loop Until ResultRng.Columns.Count = 1
iRow = 0
For Each Cel In SearchRng
If Application.WorksheetFunction.CountIf(ResultRng, Cel.Value) = 0 Then
'This value doesn't already exist
iRow = iRow + 1
If iRow > ResultRng.Rows.Count Then
MsgBox "Not enough rows in result range to write all unique values", _
vbwarning, "Run terminated"
Exit Sub
Else
ResultRng(iRow).Value = Cel.Value
End If
End If
Next Cel
'sort result range
'ResultRng.Sort ResultRng
End Sub