プロが教えるわが家の防犯対策術!

ずっと何事もなく利用していたエクセルで突然エラー13型が一致しません。と出るようになりました。マクロを作ってもらいそのまま使っているエクセルド素人です。エラーの出る数式は以下です。
Dout.Cells(G, L+1)=Dout.(G, L+1)+Din.Cells(i, j+6)'―― 金額
です。本当に素人です。プリントアウトしたマクロを見て 一生懸命式を見た目で映しました。最近まで何事もなく使っていたのに 何が悪いのかさっぱり分かりません。エラー13についてのいろんな投稿を見ましたが チンプンカンプンです。どう直したらいいのか正しい答えをお教えください。

質問者からの補足コメント

  • つらい・・・

    お言葉に甘えマクロのコピーを貼り付けようとしたのですが、文字オーバーになってしまいます。
    なので 黄色くなっている式の辺りをコピーして貼り付けてみました。 黄色くなっているのは、金額の式です。計算は出来ています。補足欄を見つけるのもコピー貼り付けに気づくのもやっとこでした。
    '--- 月別集計
    '
    Dout.Cells(G, L) = Dout.Cells(G, L) + Din.Cells(i, j + 5) '--- 数量

    Dout.Cells(G, L + 1) = Dout.Cells(G, L + 1) + Din.Cells(i, j + 6) '--- 金額

    No.2の回答に寄せられた補足コメントです。 補足日時:2021/09/27 08:14

A 回答 (4件)

No.2の者です。



コードの全体が分からないので、Debug.Printの2行を追加して、エラーが出た時に、イミディエイトウィンドウに表示されると思うのですが、それは、
どうなっているでしょうか?

Dout.Cells(G, L) = Dout.Cells(G, L) + Din.Cells(i, j + 5) '--- 数量
Debug.Print Din.Cells(i, j + 6) '追加
Debug.Print IsNumeric(Din.Cells(i, j + 6)) '追加
Dout.Cells(G, L + 1) = Dout.Cells(G, L + 1) + Din.Cells(i, j + 6) '--- 金額

イミディエイトウィンドウの表示方法
https://www.239-programing.com/excel-vba/basic/b …

Din.Cells(i, j + 6)に入っているデータと、True 又は、Falseが表示されるかと思います。 True:数値、False:数値以外

先ずは、これで、原因の切り分けてみては?と。
    • good
    • 0
この回答へのお礼

ド素人の私に 手鳥足取り教えようとして戴き感謝します。イミディエイトウィンドウは開いてみましたが 何も表示されていませんでした。お時間を割いていただきありがとうございました。今エラー表示は終了で無視しても 計算式は出来ていますので しばらくこのまま使っていく事にします。ネットでお尋ねするのも 大変ですし 全く???ですので 私にはこういう形で解決を図るのは 荷に重過ぎると悟りました。実際隣で教えて下さる方を 探す事にします。質問者がダメ過ぎて 解決に至りませんでしたが、お時間とお心を砕いていただいた事に感謝致します。ありがとうございました。

お礼日時:2021/09/27 09:43

最近まで使えていたのならコードよりは入力したデータにミスがあるとか?



>Dout.Cells(G, L+1)=Dout.(G, L+1)+Din.Cells(i, j+6)

は手打ちでしょうか?
取り敢えずエラーが出た際に黄色くなるでしょうから、各変数(G, L, i, j)にカーソルを持っていけば数値が見られるので『どこのセル』なのかを絞り込む(補正の +1,+6も加味して)。
そしてそのデータが正しいかを確認する。
    • good
    • 0
この回答へのお礼

ありがとうございます。一様やっては見ました。おそらく私のやり方が間違っているのか 変化無く どのセルか絞り込みも出来ませんでした。イミディエイトウィンドウも開いて見ましたが 此れまた同じようなもので 何も表示されていませんでした。ド素人の私では こう言う形で解決を図るのは 身の程を弁える冪と考えました。今の所は エラー表示を無視しても 一応計算も出来ていますので 暫くこのまま使い 実際に隣で教えて下さる方を探してみる事に致します。折角お時間とお心を割いて戴いたのに 愚弟で申し訳ありませんでした。お心使いに感謝申し上げます。

お礼日時:2021/09/27 10:02

こんばんは。



No.1の方の意見と同じになります。

エラー13の「型が一致しません」は、変数へ値を代入する際に発生するエラーで、数値型の変数に対して文字列を代入しようとするなど、変数の型とは違う値を代入しようとすると発生します。 VBAでは変数定義時に型を指定する場合としない場合の両方が可能ですが、エラー13は型を指定している場合に発生します。

マクロコードをアップされると、原因が特定できるかも知れません。
この回答への補足あり
    • good
    • 0

データがおかしいのでしょう。


数値が入るべき所に、文字列が入っているとかでしょうか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。お時間を割いて戴き感謝申し上げます。

お礼日時:2021/09/27 10:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A