| 
    
     |  | ▼のり さん: こんばんは。
 遅くなりました(朝、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
 
 で確認してみて下さい。
 
 
 |  |