
こんにちは! いつもこちらで勉強させていただきています。
空白行の削除について教えて下さい。
左図のようA~D,E~F,G~J,K~Mがそれぞれ1段づつずれているデータを空白行をなくして
右図のように詰めたいです。
A~Dで作成してE~F,G~J,K~Mをそれぞれ別で行おうと考え、まずはA~Dで作成をしようと
以下のコードで試したところ「型が一致しませんという」エラー表示がでました。
エラーからIF以降のコードの書き方が間違っているのかと思いますが調べても良く理解できず
立ち止まっています。
お手数ですがどなたかご教授下さい。(下記のコードは色々調べて作成してみました)
Sub 行間()
Dim i As Long
Dim s As Long
Dim t As Long
s = 1
t = 30
For i = t To s Step -1
If ActiveSheet.Range(Cells(i, "A"), (Cells(i, "D"))) = "" Then
Application.Rows(i).Delete
End If
Next
End Sub

No.1ベストアンサー
- 回答日時:
次回からエクセルのバージョンは書くようにしてください。
If ActiveSheet.Range(Cells(i, "A"), (Cells(i, "D"))) = "" Then
でエラーとなっています。
左辺はRange型であり、右辺はString型であるため質問にあるメッセージが出ています。
以下に変更すればいけるはずです。
If WorksheetFunction.CountA(ActiveSheet.Range(Cells(i, "A"), Cells(i, "D"))) = 0 Then
Office2016なら以下でもいけます。
If WorksheetFunction.TextJoin("", True, ActiveSheet.Range(Cells(i, "A"), Cells(i, "D"))) = "" Then
nekoronda様 バージョンのご指摘有難うございます。
また、左辺と右辺の型に関してはまだそれぞれの型を勉強しきれていません。
ご指摘を元に勉強します。
やりたい事も解決しました。
また、ご指摘&解決しましたのでnekoronda様をベストアンサーとさせて頂きまsジュ。
本当に有難うざいました。
No.3
- 回答日時:
こんにちは!
範囲はA1~M30セルと決まっているのですかね?
そしてお示しの画像を拝見すると行方向に関しては重なりはないようなので、一例です。
空白セルは数式などは入っていないという前提で!
Range(Cells(1, 1), Cells(30, "M")).SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
の1行だけで処理できそうです。m(_ _)m
tom04様 ご回答有難うございます。
私は1つの処理を繰り返すことしか思いつきませんでしたが
(それすら出来ていませんが)
tom04様のよう簡略化できることにあこがれます。
本当に有難うございました。
No.2
- 回答日時:
こんにちは。
以下、手を加えてみました。
確認してみてください。
Sub 行間()
Dim i As Long
Dim s As Long
Dim t As Long
Dim x As String '←追加
s = 1
t = 30
For i = t To s Step -1
'If ActiveSheet.Range(Cells(i, "A"), (Cells(i, "D"))) = "" Then'←削除
x = Cells(i, 1) & Cells(i, 2) & Cells(i, 3) & Cells(i, 4) '←追加
If x = "" Then '←追加
Application.Rows(i).Delete
End If
Next
kamejiro様 ご回答有難うございます。
今後の応用も効く内容のご回答を頂き、日々の事務作業にも生かせそうです。
本当に有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) ワークシート内を検索 1 2022/12/19 23:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでfunctionを利用しようとし...
-
文字列内で括弧を使うには
-
String""から型'Double'への変...
-
お助けください!VBAのファイル...
-
UserForm1.Showでエラーになり...
-
マクロOn Error GoTo ErrLabel...
-
DBへのINSERT時に実行時エラー...
-
VBA 空白行の削除
-
On ErrorでエラーNoが0
-
【VB.NET】 パワポ操作を非表示で
-
HTMLソースが表示のページのも...
-
【VBA】ワークブックを開く時に...
-
インポート時のエラー「データ...
-
Filter関数を用いた結果、何も...
-
Excel vbaについての質問
-
INSERT INTOステートメント構文...
-
ACCESS DAO で不要なテーブルの...
-
条件式について
-
IIS7.0上でASP.netでAD情報取得...
-
ApplicationとWorksheetFunctio...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
String""から型'Double'への変...
-
【VBA】ワークブックを開く時に...
-
文字列内で括弧を使うには
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
ApplicationとWorksheetFunctio...
-
【Access】Excelインポート時に...
-
インポート時のエラー「データ...
-
実行時エラー 438 の解決策をお...
-
オブジェクト型の変数にフォー...
-
.VBSだとADODBのプロバイダが見...
-
実行時エラー'-2147467259(8000...
-
【VB.NET】 パワポ操作を非表示で
-
フランスの生年月日(jj/mm/aaaa)
-
【VBAエラー】Nextに対するFor...
おすすめ情報