- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:実行時エラー13 型が一致しません。エラー2029)
エクセルVBAで実行時エラー13と2029が発生
このQ&Aのポイント
- エクセルVBAでセルの内容が「=a」や「#NAME?」の場合に、その行を削除する処理を実行したいが、実行時エラー13と2029が発生する。
- 実行時エラー13は型が一致しない場合に発生し、エラー2029は配列の範囲外にアクセスした場合に発生する。
- Cells(1, 1)の値が文字列であることや、セルの値を別の変数に代入してから比較することで、エラーを回避できる可能性がある。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
少し話がずれるかもしれませんが、 >A1に「=a」と文字が入っていて、 >#NAME? >となります。 このようになるのは、「=a」が文字列ではなくて、「aという名前のついたセルを参照して表示する」という計算式になっているからです。そして、aという名前のついたセルが存在しないため「#NAME?」と表示されるのです。 A1セルの表示形式を「文字列」にすれば、A1セルに「=a」と表示されます。
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
回答No.2
>#NAME?の場合は、その行を削除したいです。 if range("A1").text = "#NAME?" then rows(1).delete とかで十分です。 #NAME?の識別にこだわらなければ if iserror(range("A1")) then でもイイと思いますが。
質問者
お礼
回答ありがとうございました。
- f272
- ベストアンサー率46% (8499/18196)
回答No.1
If Cells(1, 1).Formula = "=a" Then Rows(1).delele End If または If Cells(1, 1).Value = CVErr(xlErrName) Then Rows(1).delele End If とすればいいんじゃないかな?
質問者
お礼
回答ありがとうございました。
お礼
回答ありがとうございました。