- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:If~ThenステートメントとAnd演算子)
If~ThenステートメントとAnd演算子
このQ&Aのポイント
- windows7、エクセル2013でIf~ThenステートメントとAnd演算子を使用して処理を行いたいが、構文がエラーになる。
- セルに式が入っていて計算結果がエラーの場合や空白、0の場合は処理を行わず、それ以外の場合に処理を行いたい。
- 現在の構文ではエラーが発生しているが、どこが悪いのかわからない。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
If IsError(Cells(x, 20)) Then ElseIf (Cells(x, 20)) = 0 Or (Cells(x, 20)) = "" Then Else y = Cells(x, 20) * Cells(x, 23) End If
その他の回答 (2)
- Nouble
- ベストアンサー率18% (330/1783)
回答No.3
素人の、戯言 かも、知れません お許しください。 例えば、 (Cells(x, 20))) = 0 と、されていますが Cells() は、 謂わば 構造体への参照で 端的に、言うと .Value以外の値も、内包しています お示しの式、では 構造体中の、 どのメンバーの値を 評価対象に、するのか 指定してません よね? なので、 Cells(x, 20) を、 Cells(x, 20).Value と、試してみて 頂けませんか? 参考にどうぞ https://www.moug.net/tech/exvba/0100047.html
質問者
お礼
ご丁寧にありがとうございました。
- mt2015
- ベストアンサー率49% (258/524)
回答No.2
こんな感じでどうでしょう。 ・先にセルがエラーで無い事を確認しないと、値の確認(0や空白の確認)でエラーになります。 ・セルが空白でも0でも値は0なのでまとめました。 If IsError(Cells(x, 20)) = False Then If Cells(x, 20) <> 0 Then y = Cells(x, 20) * Cells(x, 23) End If End If 質問のコードで気になりましたが、and と or の違いについて、もう少し理解が必要かと思えました。
質問者
お礼
遅くなって申し訳ありません。 >and と or の違い はい。確かに勘違いしておりました。 ありがとうございました。
お礼
Thenを使う行は1行でと思ったのですが やはり2行でないとできないようです。 ありがとうございました。