• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロ実行で実行時エラー13発生)

マクロ実行で実行時エラー13発生

このQ&Aのポイント
  • AK24列から9行毎に元のセル値に+10するマクロでエラーになります。実行時エラー13 型が一致しません
  • マクロを実行すると、AK294セルまで値は入るが、AK303セル以降の値が入りません。
  • 計画シートのAK列を削除してマクロを実行するとエラーが発生しません。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

値の型をチェックして見てはどうか。 例えば 例データ A1:A10 12 1 34 56 21 33 a 45 3 q ーー で下記を実行。 If i > 6 And u < 9 Then は狙いを付けて、Printされる行を絞るため入れた。 Sub test02() For i = 1 To 10 If i > 6 And u < 9 Then Debug.Print "行"; i; VarType(Cells(i, "A")) ’演算行の直前に入れる。 End If Cells(i, "B") = Cells(i, "A") + 10 Next i End Sub 実行後、イミディエイトウインドウを表示すると 行 7 8 https://www.sejuku.net/blog/68632 VBAのVarType関数とは 「8」は文字列です。

3620313
質問者

お礼

回答ありがとうございます 値の型を確認しました。 型以外にも、AK列の文字数、TYPE、 VarType の結果を見たら、 文字数 TYPE VarType 2    1   0 0    2    8 2    1    0 0    2   8 0    1   0 0    1   0 … 0    2    8 ←303行目 となっており、セルに何もデータ無いのにデータ型が文字列になっているのが原因でした。 何故、この様になっているかは?ですが…。

3620313
質問者

補足

対処内容 Cells(24 + i, 37).Value = Cells(24 + i, 37).Value + 10 の内容を Cells(24 + i, 37).Value = CVar(Cells(24 + i, 37).Value) Cells(24 + i, 37).Value = Cells(24 + i, 37).Value + 10 とすることでエラー解消されました。

その他の回答 (2)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

>何が原因でマクロが停止しているのか、原因を把握する手段を >教えていただきたく。 エラーが発生した状態でデバッグモードにして、 イミディエイトウインドウを開いて、 ?Cells(24 + i, 37).Value,len(Cells(24 + i, 37).Value) を入力して、Enterします。 何か表示されるはずです。入力はコードをコピーしています。 別の処理で何か書き込まれている場合もあります。 このような処理の場合、   Sheets("計画").Select  Range("AK:AK").ClearContents '// 追加  i = 0 と最初にクリアした方がいいでしょう。

3620313
質問者

お礼

回答ありがとうございます。 ?Cells(24 + i, 37).Value,len(Cells(24 + i, 37).Value) を実施した所、          0 と表示されました。 なので、何かしらのデータが入っているわけではありません。   Sheets("計画").Select  Range("AK:AK").ClearContents '// 追加 とのことですが、AK列は、データが入っているセル、入っていないセルがあるので削除はできないのです。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

AK303に空白のスペースでも入っているのではないでしょうか。 文字列に10を加算するので「型が一致しません」になっているような気がします。

3620313
質問者

お礼

回答ありがとうございます。スペースが入っている場合、F2キーで←と→でカーソル位置が変わるので分かります。今回場合、何も入っていない状態でした。

関連するQ&A