3

名前付き範囲rbTopとrbBottomの間のすべての行を削除したい

Range("rbBottom").Value = ""
Range("rbTop").Select
Do While (Selection.Offset(1, 0).Value <> "")
Selection.Offset(1, 0).EntireRow.Delete
Loop    

これは機能しますが、少し短い方法が必要です

Range("rbTop").Select
Do While (Selection.Offset(1, 0).Name <> "rbBottom")  // how to write this line ?
Selection.Offset(1, 0).EntireRow.Delete
Loop
4

1 に答える 1

4

Selectまたはループなし:

Sub Cull()
Dim rng1 As Range
Set rng1 = Range(Range("rbtop"), Range("rbbottom"))
If rng1.Rows.Count > 2 Then rng1.Offset(1, 0).Resize(rng1.Rows.Count - 2, 1).EntireRow.Delete
End Sub
于 2012-09-15T07:05:21.100 に答える