2017-04-16 10 views
-1

コピーしたデータの最後の行の後にあるすべての行を列 "C"で削除するコードを探したいとします。最後のセルの後の行を列内のデータで置換する

それでは、列Cの私のデータが行1265で終了し、コードはその後、すべての行を削除すると仮定されたとしましょう。..

おかげ

答えて

1

あなたはこのような何かをしようとする...

Sub DeleteRows() 
Dim LastRowColC As Long, LastRow As Long 
LastRow = ActiveSheet.UsedRange.Rows.Count 
LastRowColC = Cells(Rows.Count, "C").End(xlUp).Row 
If LastRow > LastRowColC Then 
    Rows(LastRowColC + 1 & ":" & LastRow).Delete 
    'OR 
    'Rows(LastRowColC + 1 & ":" & LastRow).Clear 
End If 
End Sub 

データはエクセルの表にある場合は、このようにそれをしようとは...

Sub DeleteRows() 
Dim LastRowColC As Long, LastRow As Long 
Dim tbl As ListObject 
Set tbl = ActiveSheet.ListObjects(1) 
LastRow = tbl.DataBodyRange.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 
LastRowColC = tbl.DataBodyRange.Columns(3).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 
If LastRow > LastRowColC Then 
    Rows(LastRowColC + 1 & ":" & LastRow).Delete 
End If 
End Sub 
+0

こんにちは、これは素晴らしいです。しかし、私はそれが働くために必要なシートでは機能しません...私は問題がそのテーブルであるかもしれないと思いますか?その 'tabel1'と呼ばれる しかし、私は値として新しいシートにそれを対処するとき、それは魅力として働く。 テーブル付きのシートで動作させることはできますか? – Aabo

+0

データがExcelテーブルにある場合には、別のソリューションが追加されました。 – sktneer

関連する問題