
お世話になっております。
#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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
文字列内で括弧を使うには
-
String""から型'Double'への変...
-
実行時エラー'-2147467259(8000...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
pythonのopenpyxlについて
-
レコード登録時に「演算子があ...
-
データベース操作時エラーについて
-
VBA データ(特定値)のある最...
-
ActiveCell.FormulaR1C1の変数
-
演算子が DBnull 及び integer...
-
UBoundに配列がありませんとエ...
-
VBA処理中に途中で止まってしま...
-
【Access】Excelインポート時に...
-
インポート時のエラー「データ...
-
ApplicationとWorksheetFunctio...
-
LaTeXのエラーについて(コンパ...
-
VB6とVB.NETでNullの扱いが違う?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
String""から型'Double'への変...
-
【Access】Excelインポート時に...
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
インポート時のエラー「データ...
-
ACCESSで値を代入できないとは?
-
VBA エクセル で FIND でのエラ...
-
Filter関数を用いた結果、何も...
-
レコード登録時に「演算子があ...
-
ApplicationとWorksheetFunctio...
-
Excel vbaについての質問
-
【VBAエラー】Nextに対するFor...
-
実行時エラー 438 の解決策をお...
-
「実行時エラー '3167' レコー...
おすすめ情報