|
▼斉藤 さん:
とりあえず Sample2 のほうの 重複の削除を AdvancedFilter に変更したものを。
xl2002 のAdvancedFilter(フィルターオプション)は、それ以前の xl2000 や
それ以降の xl2003等 とは、少し機能が異なる部分がありますので、どうなるか
わかりませんが。
でも、これでも、その下のコードで Sample と同じエラーになるはずです。
Sub Sample3()
Dim c As Range
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
With Sheets("Sheet1")
For Each c In .Range("A1", .Range("A" & Rows.Count).End(xlUp))
If Not dic.exists(c.Value) Then
dic(c.Value) = c.EntireRow.Range("Q1").Value
Else
dic(c.Value) = dic(c.Value) & "," & c.EntireRow.Range("Q1").Value
End If
Next
End With
With Sheets("Sheet2")
.Cells.ClearContents
Sheets("Sheet1").Columns("A:P").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=.Range("A1"), Unique:=True
.Range("Q1").Resize(dic.Count).Value = WorksheetFunction.Transpose(dic.items)
.Select
End With
End Sub
|
|