[[20190309215135]] 『空白行を詰めて最終行を削除』(マクロ初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『空白行を詰めて最終行を削除』(マクロ初心者)

A1からB10までに空白があれば行を詰めて最終行を削除するマクロですが
空白がない場合は何もしないとしたいのですが実行時エラー1004となるのを回避したいです。

皆様のお知恵をお借りしたいと思います。宜しくお願いします。

Sub 空白行詰め()

    Range("A1:B10").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.EntireRow.Delete
    Selection.End(xlDown).EntireRow.Delete Shift:=xlUp
End Sub

< 使用 Excel:Excel2016、使用 OS:Windows8 >


回答ではありあせん。

>空白があれば行を詰めて

こっちはわかりますが、

>最終行を削除する

これはできていますか?
削除されないときがありませんか。

(マナ) 2019/03/09(土) 22:12


以下の場合、最終行は何行目でしょうか。

 1)
 	-A-	-B-
 1	 1	 1
 2	 2	 2
 3	 3	 3
 4	 4	 4
 5	 5	 5
 6	 6	 
 7	 7	 
 8	 8	
 9	 9	 
 10	10	10

 2)
  	-A-	-B-
 1	 1	 1
 2	 2	 2
 3	 3	 3
 4	 4	 4
 5	 5	 5
 6	 6	 
 7	 7	 
 8	 8	
 9	 9	 
 10	10	

 3)
 	-A-	-B-
 1	 1	 1
 2	 2	 2
 3	 3	 3
 4	 4	 4
 5	 5	 5
 6	 6	 
 7	 7	 
 8	 8	
 9		 
 10		

(マナ) 2019/03/09(土) 22:53


マナ様

 1)の場合は10行目

 2)3)の場合は5行目です。宜しくお願いします。
(マクロ初心者) 2019/03/09(土) 23:52

1)まずは、本題の

>空白がない場合は何もしないとしたい

空白がある場合にのみ実行するという風に考えると
空白でないセルの数や空白セルの数を調べて

If WorksheetFunction.CountA(Selection) < Selection.Count Then

とか

If WorksheetFunction.CountBlank(Selection) > 0 Then

と表現できます。

2)次に、最終行を削除する件

今回は、End(xlDown)ではなく、End(xlUP)を使うとよいです、
使い方は調べてみてください。

(マナ) 2019/03/10(日) 09:42


マナ様
ありがとうございました。

(マクロ初心者) 2019/03/10(日) 21:46


A列に空白はないのですか・・?

あと、提示の部分以外にも何か入力はされているのでしょうか?

(まっつわん) 2019/03/11(月) 00:00


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.