Y列がゼロの場合、ゼロの行を削除する以下のコードを使っております。
"0"ではなく空白の場合、どのようにしたら良いのでしょうか?
-----ゼロ行削除------
Dim i As Long
Dim myRng As Range
For i = 9 To Cells(Rows.Count, "Y").End(xlUp).Row
If Cells(i, "Y") = 0 Then
If myRng Is Nothing Then
Set myRng = Cells(i, "Y")
Else
Set myRng = Union(myRng, Cells(i, "Y"))
End If
End If
Next i
If Not myRng Is Nothing Then
myRng.EntireRow.Delete
End If
MsgBox "完了"
No.3
- 回答日時:
>変更しましたが削除出来ませんでした。
おかしいですね。こちらでは、削除されることを動作確認済みです。
念のため、以下のマクロで試してください。
Public Sub 空白行削除()
Dim i As Long
Dim myRng As Range
For i = 9 To Cells(Rows.Count, "Y").End(xlUp).row
If Cells(i, "Y").Value = "" Then
If myRng Is Nothing Then
Set myRng = Cells(i, "Y")
Else
Set myRng = Union(myRng, Cells(i, "Y"))
End If
End If
Next i
If Not myRng Is Nothing Then
myRng.EntireRow.Delete
End If
MsgBox "完了"
End Sub
No.4
- 回答日時:
>>空白の場合
可能性としては、null、半角ブランク、全角ブランクがあるので列挙する。
If Cells(i, "Y") = 0 Then
↓
If Cells(i, "Y") = 0 or Cells(i, "Y") = "" or Cells(i, "Y") = " " or
Cells(i, "Y") = " " Then
No.5
- 回答日時:
もし、空白セルのなかに、半角スペース、全角スペース、タブ等が、複数混じっていて、見た目が空白なら、以下のようにしてください。
Public Sub 空白行削除()
Dim i As Long
Dim myRng As Range
Dim RE As Object
Set RE = CreateObject("VBScript.RegExp")
RE.Pattern = "^(\s| )*$"
For i = 9 To Cells(Rows.Count, "Y").End(xlUp).row
If RE.test(Cells(i, "Y").Value) Then
If myRng Is Nothing Then
Set myRng = Cells(i, "Y")
Else
Set myRng = Union(myRng, Cells(i, "Y"))
End If
End If
Next i
If Not myRng Is Nothing Then
myRng.EntireRow.Delete
End If
MsgBox "完了"
End Sub
--------------------------------------------
追伸
RE.Pattern = "^(\s| )*$"の
(\s| )の個所のスペースは全角空白です。そのままコピペして使ってください。(半角スペースに変えてはいけません)
No.6
- 回答日時:
普通(多分だけど)そう言う場合、そのセルがどうなっているのかを調べるのにLen関数にて文字数を調べるかな?
例えば空いてる列に書き出すとか
あとは文字コードを調べる(消せないセル1個とか)などの調査をしないと、質問者さんの『本当に結果を出すべきbook』は回答者には触れないですし
No.7ベストアンサー
- 回答日時:
>A1:AE200までの表でA10から他シートの値をA,B,U,Y列に転記しています。
>転記された以下のY列空白の200行目までの不要行を削除したいのです。
ということは、削除対象のセルはY9からY200に限定して良いということでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA 選択範囲とUnionの使い方について 8 2023/08/17 13:25
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
エクセルでCSVを編集するとき、...
-
空白セル内の数式を残したまま...
-
数式による空白を無視して最終...
-
Excel > ピボットテーブル「(空...
-
excel2010 空白セルにのみ貼り...
-
「データ要素を線で結ぶ」がチ...
-
エクセルで上の行の値を自動的...
-
vlookup にて、返す値が、空白...
-
関数TRANSPOSEで空白セルを0に...
-
【Excel】 csvの作成時、空白セ...
-
空白を0とみなす関数
-
エクセルにて負の時間を0:00と...
-
ピボットテーブルで空白セルの...
-
エクセル マクロ 最終列まで...
-
空白セルがないのにオートフィ...
-
COUNTAで式をカウントしない方法
-
《Excel2000》SUMPRODUCT関数で...
-
エクセルのグラフで式や文字列...
-
Excel:関数が入っているセルに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
数式による空白を無視して最終...
-
エクセルでCSVを編集するとき、...
-
ピボットテーブルで空白セルの...
-
excel2010 空白セルにのみ貼り...
-
Excel > ピボットテーブル「(空...
-
空白セル内の数式を残したまま...
-
「データ要素を線で結ぶ」がチ...
-
エクセルで、「複数のセルの中...
-
Excelで、入力文字の後に自動で...
-
エクセル 連番が途切れていると...
-
《Excel2000》SUMPRODUCT関数で...
-
SUMIFS関数で「計算式による空...
-
【Excel】 csvの作成時、空白セ...
-
形式貼り付けの「空白を無視す...
-
Excel:関数が入っているセルに...
-
リンク先が空白若しくはゼロの...
-
エクセルで上の行の値を自動的...
-
エクセルにて負の時間を0:00と...
-
エクセルのグラフで式や文字列...
おすすめ情報
変更しましたが削除出来ませんでした。
変更しましたが削除出来ませんでした。
皆様、ご回答ありがとうございます。
色々と試しましたがすべて削除されませんでした。
試しに15行から20行目までのY列を空白にするとすべてのご回答では削除されます。
補足いたしますと・・・
A1:AE200までの表でA10から他シートの値をA,B,U,Y列に転記しています。
転記された以下のY列空白の200行目までの不要行を削除したいのです。
現在は"For i = 9 To…"で10行目。
下がゼロで削除ですよね。
200行目の指定が必要であればすべてのシートを200行で統一で可能です。
複数のBook、シートで利用しています(-_-;)