|
こんにちは。かみちゃん です。
>Forステートメントと
>If文で
>☆ではない行を削除したいのですが、
For〜Nextを必ず使わないといけないのですか?
オートフィルタを使ったり、数式を埋め込んで対象行を一括削除するなど方法は
いろいろあるのですが・・・
>削除される行と削除されない行が
>できてしまいます。
For〜Nextを使って行を削除する場合は、下の行から順番に削除すれば、うまくいきます。
行を削除したら、上に詰められるからです。
もちろん、上から順番に削除する場合もできますが、ややこしくなりますので。
下から順番に削除する場合は、以下のような感じでできます。
Sub test()
Dim r As Long, 銘柄数 As Long
With Workbooks("×××.xls").Worksheets(2)
銘柄数 = .UsedRange.Rows.Count
'削除対象行を最下行からチェックする。
For r = 銘柄数 To 1 Step -1
With .Cells(r, 6)
'セルの値が☆ではない場合
If .Value <> "☆" Then
'そのセルが含まれる行全体を削除する。
.EntireRow.Delete
End If
End With
Next r
End With
End Sub
|
|