|
tami さん、こんにちわ。
>しかしSheets("sheet2").UsedRange.ClearContentsは完全に削除でき
>便利なのですが・・・
>時々、一行目(時には数行目まで)だけ残して、それ以外は全て削除にこの便利なUsedRangeが使えないか?など思う時があります(余談ですが)
InterSectメソッドで、削除していい部分とのかぶりを判定して、あったら削除します。
Sub test()
Dim Rmax As Long
'
Rmax = 3 '残す行の一番下
With Application.ActiveSheet
Set r1 = .Rows((Rmax + 1) & ":65536")
Set r2 = .UsedRange
End With
'
Set r3 = Application.Intersect(r1, r2)
If Not r3 Is Nothing Then
Set r3 = r3.EntireRow
r3.Interior.ColorIndex = 5
MsgBox "削除しますね"
r3.Delete
ActiveSheet.UsedRange'←これでちゃんと判定されるとは知りませんでした
Else
MsgBox r2.Address, vbInformation, "UsedRange"
End If
End Sub
こんな感じです。
|
|