|
こんにちは
データセル範囲が大きいと時間が掛かります。
Sub test()
Dim r As Range
Dim i As Long
Dim s As Variant
With Worksheets("Sheet1")
For Each r In .Range("A1", .Cells(Rows.Count, 1).End(xlUp))
s = r.Value
i = WorksheetFunction.CountIf(.UsedRange, s)
Select Case i
Case 2
r.Insert xlShiftToRight
r.Offset(, -1).Value = "★"
Case 3
r.Insert xlShiftToRight
r.Offset(, -1).Value = "★★"
End Select
Next
End With
End Sub
▼hacuen さん:
>VBA初心者です。
>以下の様なマクロを作りたいです、ご教授お願いします。
>
>(A.1)セルの値を取得
>→取得した値でシート全体検索
>ケース1.(A.1)と同じ値が1つ(全体で2つ)→★の入ったセルを(A.1)セルの前に挿入
>ケース2.(A.1)と同じ値が2つ(全体で3つ)→★★の入ったセルを(A.1)セルの前に挿入
>ケース3.(A.1)と同じ値が無い(全体で1つ)→取得したセルの一つ下のセルの値を取得し、再度検索実行
>ケース4.(A.X)セルの値が無い→end
>
>ケース4.になるまでは永久ループ的な感じです。
>
>結果としては同じデータが2つあると★1つ、3つなら★2つが付くようにしたいです。
>case文で作ろうとしたのですが、検索に引っかかった件数=変数として抽出するやり方が解りませんでした。
>
>どうかよろしくお願いします。
|
|