• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:実行時エラー13 型が一致しません。エラー2029)

エクセルVBAで実行時エラー13と2029が発生

このQ&Aのポイント
  • エクセルVBAでセルの内容が「=a」や「#NAME?」の場合に、その行を削除する処理を実行したいが、実行時エラー13と2029が発生する。
  • 実行時エラー13は型が一致しない場合に発生し、エラー2029は配列の範囲外にアクセスした場合に発生する。
  • Cells(1, 1)の値が文字列であることや、セルの値を別の変数に代入してから比較することで、エラーを回避できる可能性がある。

質問者が選んだベストアンサー

  • ベストアンサー
  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.3

少し話がずれるかもしれませんが、 >A1に「=a」と文字が入っていて、 >#NAME? >となります。 このようになるのは、「=a」が文字列ではなくて、「aという名前のついたセルを参照して表示する」という計算式になっているからです。そして、aという名前のついたセルが存在しないため「#NAME?」と表示されるのです。 A1セルの表示形式を「文字列」にすれば、A1セルに「=a」と表示されます。

UGNTXHMTLKY
質問者

お礼

回答ありがとうございました。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>#NAME?の場合は、その行を削除したいです。 if range("A1").text = "#NAME?" then rows(1).delete とかで十分です。 #NAME?の識別にこだわらなければ if iserror(range("A1")) then でもイイと思いますが。

UGNTXHMTLKY
質問者

お礼

回答ありがとうございました。

  • 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 とすればいいんじゃないかな?

UGNTXHMTLKY
質問者

お礼

回答ありがとうございました。

関連するQ&A