dポイントプレゼントキャンペーン実施中!

VBAで、表のB列の最終行からB列の91行目までの行削除するマクロを作りたいのですが、うまくいきません。

A 回答 (4件)

 補足を見ましたが、やはりよくわかりません。



>12行目から30行目までしかデーターを入力しなければ、31行目から91行目までの行を削除したい

ということですが、この場合、最初の質問の「B列の最終行からB列の91行目まで」の「最終行」とはどの行のことでしょうか。「データの最終」という意味なら、30行目が最終行になりますが、30行目を削除するのはまずいですね。

 データが何行目まで入力されているかを調べ、最終行の次の行から91行目までを削除するなら、

Sub test()
Dim REnd As Integer

REnd = Range("B12").End(xlDown).Row + 1
Range(Cells(REnd, 2), Cells(91, 2)).EntireRow.Delete
End Sub

みたいなことでしょうか。

 試すときは、当然ですが、バックアップを取って試してください。
    • good
    • 1

 #2です。



 質問をよく読むと、「行削除」とありました。

 B列の最終行が 500行だとすると、行ないたいことは、B91:B500 のセル範囲だけを削除するのではなく、91行目から500行目までを削除したい、ということでしょうか。

 先の回答は、セル範囲だけを削除するものです。

この回答への補足

B列の12行目から91行目にかけてデーターを入力し92行目に合計が出るような表を作っています。
例えば、12行目から30行目までしかデーターを入力しなければ、31行目から91行目までの行を削除したいのですが。
すいません説明が不足していました。

補足日時:2010/12/04 13:09
    • good
    • 0

 どううまくいかないのかがわかりませんが、



Sub test()
Dim REnd As Long

REnd = Range("B65536").End(xlUp).Row
Range(Cells(91, 2), Cells(REnd, 2)).Delete Shift:=xlUp
End Sub

みたいなのではだめですか。

削除したあと、左へシフトなら

.Delete Shift:=xlUp のところを .Delete Shift:=xlToLeft とします。

あるいは、「削除」というのがデータ消去のことであれば、

.Delete Shift:=xlUp のところを .ClearContents とします。
    • good
    • 0

Range("b1:b2").Delete でなくて?これならb列だけの削除になりますが・・・。

 
例えば
111  222  333
111  222  333
111  222  333
111  222  333 
というシートあったとすると
111  333
111  333
111  222  333
111  222  333
に変りますがこういうことでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!