お世話になっております。
#N/Aの文字を含む行を削除するため以下のようなマクロ(Excel)を組みました。
Dim i As Long
With Range("C1")
For i = .CurrentRegion.Rows.Count To 1 Step -1
If .Offset(i, 2) = "#N/A" Then .Offset(i, 5).EntireRow.Delete
Next i
End With
当然かもしれませんが、IF文の ".offset(i,2)="#N/A""のところで「型が一致しません」とエラーが出てしまいます。
シート上で#N/Aは数式でなく値として記録されています。
どのようにすればエラーを回避できるでしょうか。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんにちは。
IsNA はワークシート関数なので、Application が必要ですね。
If Application.IsNA(.Offset(i, 2)) Then
または、
If VarType(.Offset(i, 2)) = vbError Then
とか。
#N/A エラーかどうか、エラーの種類チェックが不要なら SpecialCells で数式の
エラー値を拾った方が早いと思いますよ。
C 列から列方向に Offset 2 だから E 列でエラー値がある行を削除するのかな?
Dim rTarget As Range
On Error Resume Next
Set rTarget = Columns("E").SpecialCells(xlCellTypeFormulas, xlErrors)
If Not rTarget Is Nothing Then
rTarget.EntireRow.Delete Shift:=xlShiftUp
End If
KenKen_SPさん、前回に引き続き今回もありがとうございました。
SpecialCellsの方は条件の"xlCellTypeFormulas"を"xlCellTypeConstants"にしたところうまくいきました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- Excel(エクセル) vba 転記するときの最終行について 2 2022/09/03 09:31
- Visual Basic(VBA) VBAで教えて頂きたいのですが? 1 2022/04/29 02:36
- Visual Basic(VBA) 配列にしたセル範囲でのコメントがあるかどうかを取得するコードの書き方 2 2022/09/17 05:09
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
マクロで#N/A"のエラー行を削除したい"
Visual Basic(VBA)
-
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
VBA Vlookup #N/A表示させない方法
その他(プログラミング・Web制作)
-
-
4
エクセル マクロ エラーのある行を削除
Excel(エクセル)
-
5
エクセルVBAで列名が#N/Aとなった列を削除するプログラムはどのように組めばよいのでしょうか?
Excel(エクセル)
-
6
指定した文字があった場合、その行を削除するマクロが欲しいです
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
マクロで"#N/A"のエラー行を削...
-
On ErrorでエラーNoが0
-
【VBA】ワークブックを開く時に...
-
お助けください!VBAのファイル...
-
VBA データ(特定値)のある最...
-
ExecuteNonQueryメソッドの戻り値
-
VBでSQL文のUPDATE構文を使った...
-
【Access】Excelインポート時に...
-
エクセルVBAで今まで使えていた...
-
エクセルでリンクされたイメー...
-
ACCESSで値を代入できないとは?
-
OpenOffice Basicで簡単な関数...
-
Excel vbaについての質問
-
ACCESS DAO で不要なテーブルの...
-
#N/Aの文字を削除するには
-
インポート時のエラー「データ...
-
フランスの生年月日(jj/mm/aaaa)
-
VBAでfunctionを利用しようとし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
実行時エラー 438 の解決策をお...
-
On ErrorでエラーNoが0
-
お助けください!VBAのファイル...
-
VBA データ(特定値)のある最...
-
インポート時のエラー「データ...
-
実行時エラー'-2147467259(8000...
-
ACCESSで値を代入できないとは?
-
VB.net 重複チェックがしたいです
-
ActiveCell.FormulaR1C1の変数
-
ApplicationとWorksheetFunctio...
-
「実行時エラー '3167' レコー...
-
【VB.NET】 パワポ操作を非表示で
-
フランスの生年月日(jj/mm/aaaa)
-
【マクロ】 IFERROR関数をマク...
おすすめ情報