|
ichinoseさんありがとうございました。
朝まで待ってていただいてご迷惑をおかけしました。
台風の対応で返事が送れたことを
深くお詫びいたします。
さて、早速ためさせていただきました。
処理時間が約5分ぐらいかかりますが
良好な結果を得ることができました。
今後活用させていただきます。
▼ichinose さん:
>▼のり さん:
>こんばんは。
>遅くなりました(朝、8:15までは見てたんですが・・)
>
>>ichinose さん、おはようございます。
>>早速の回答ありがとうございました。
>>サンプルで試したら良好です。
>>
>>実は、使用している表の領域が
>>セルA12〜AP2233で
>>削除を判定する番号が入っているセルはE12〜E2233です。
>>このE列に同一番号が何回も出てきます。
>>同じ番号が出てきた場合行番号の上位行だけ
>>残し他の業は削除したいのですが。
>>
>>再度の教授をお願いします。
>>
>>
>>▼ichinose さん:
>>>▼のり さん:
>>>こんばんは。
>>>ちょっと前に似たような処理の投稿をしましたが・・・・。
>>>
>>>>どなたかマクロを教えてください。
>>>> セルB1〜j100までにデータがあります。
>>>> 列B(セルB1〜B100)には番号が入力されていますが
>>>> 同一番号が何回も出てきます。
>>>>
>>>> そこで、同じ番号が出てきた場合行番号の上位行だけ
>>>> 残し他の業は削除したいのですが。
>>>>
>>>> たとえばセルB1に32番
>>>> セルB8に32番
>>>> セルB65に32番
>>>> がある場合
>>>> 上位行の行1だけを残し行8と65は削除する。
>>>>
>>>> お願いします。
>>>'==========================================================
>>>Sub test()
>>> Dim rd As Range
>>> Dim ans As Range
>>> Set rd = Range("b1:b100")
>>> With rd.Offset(0, 10)
>>> .Formula = "=IF(COUNTIF($b$1:b1,b1)>1,b1,"""")"
>>> .Value = .Value
>>> On Error Resume Next
>>> Set ans = Nothing
>>> Set ans = .SpecialCells(xlCellTypeConstants)
>>> .Value = ""
>>> If Not ans Is Nothing Then
>>> ans.EntireRow.Delete
>>> End If
>>> End With
>>>End Sub
>>>
>>>尚、L列を作業列として使っています。
>>>確認してください
>'==========================================================
>Sub test()
> Dim rd As Range
> Dim ans As Range
> Set rd = Range("e12:e2233")
> With rd.Offset(0, 40) 'AS列
> .Formula = "=IF(COUNTIF($e$12:e12,e12)>1,e12,"""")"
> .Value = .Value
> On Error Resume Next
> Set ans = Nothing
> Set ans = .SpecialCells(xlCellTypeConstants)
> .Value = ""
> If Not ans Is Nothing Then
> ans.EntireRow.Delete
> End If
> End With
>End Sub
>
>で確認してみて下さい。
|
|