- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一致するように思えるのですが。)
VBAコードで一致しない方にだけ流れる理由を調べる方法は?
このQ&Aのポイント
- VBAコードで一致しない方にだけ流れる理由を調べる方法について教えてください。
- 特定の条件で一致しない方にだけ流れるVBAコードの問題を解決したいです。
- VBAコードで一致しない方にだけ流れる理由を調査するための手順を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Cells(n, 4)、Cells(8, 12) どちらにも194が入ってはいるものの、片方は数値、片方は文字列なんて事はないですか? If Cells(n, 4) = Cells(8, 12) Then ↓ If Int(Cells(n, 4)) = Int(Cells(8, 12)) Then これだとどうでしょう。
その他の回答 (2)
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
回答No.3
見かけ同じでもタイプが違う? 数値の194(右詰)と文字列の194(左詰)??
質問者
お礼
有り難うございます。 定義上も違っていないのですが、 結果だけが一致しないのですよね。 何かしらが違うのでしょうが、 原因がつかめません。
- INTLINSIDE
- ベストアンサー率42% (383/907)
回答No.1
そのコードだけでは、双方のセルの内容が一致する場合、atari としか出ません。 .Value つけたらどうなります? 省略可能だったとは思いますが。 If Cells(n,4).Value = Cells(8,12).Value たぶん関係ないかも。 その質問のコードは、実際とは違うんですよね? 他の箇所がおかしいということもありえます。 判定分が複雑な場合、分解してデバッグするという方法もあります。 b = (Cells(n, 4) = Cells(8, 12)) if b then まあ、あたり前だけど。 今回は1つだけかもしれないけど。 論理式が複数ある場合、それぞれにブレークポイントが設定できるようになるというメリットぐらいしかありませんが。 あとは、Cells に指定している、行と列が逆になっているとか。
質問者
お礼
有り難うございました。 valueを付けたり、書式で表示形式を変えたり、 一通りやりました。 兎に角書いたとおり、1ステップ毎のトレースではチャンと194と 表示されているのですが。
お礼
有り難うございます。 定義上は完璧に同じになっていますが。 不思議です。 intがありましたね、 これでやってみます。 多分これなら一致するでしょう。 原因は分かりませんが、結果は一致できそうです。