Warning: session_start(): Session cannot be started after headers have already been sent in /www/wwwroot/-snapp/7.snapp.im/_header.php on line 2
img img img
Log in and receive your posting earnings settlement.

VBA の式について質問です。 以下数式の計算を複数行にわたり行おうとしてます。 現状、エラー

cont
image
9:03VBA の式について質問です。。

以下数式の計算を複数行にわたり行おうとます。。

現状、エラー(Q2が0)となった際に65535と返ってきてしまうのですが、0と返ってくるようにいです。。

VBA の式について質問です。。

以下数式の計算を複数行にわたり行おうとます。。

現状、エラー(Q2が0)となった際に65535と返ってきてしまうのですが、0と返ってくるようにいです。。

result = ((M2+N2)-O2 × P2)/Q2 他人が作ったvbaでよくわからない状況です。。

お力をお貸しください。。

Visual 9:の場合だと最初のAIのように入力値を検査するのが適切です。。

if Q2 = 0 then result = 0 else result = ((M2+N2)-O2 × P2)/Q2 end ifこのはいかがでか? AIからのお助け 3(Anthropic)VBAでゼロ除算エラーが発生場合の値を変更するには、On Error ステートメントを使用します。。

On Error Resume Next ステートメントを使うと、エラーが発生もプログラムが停止せずに次の行に進みます。。

その後 Err.Number を使ってエラーの種類を確認し、ゼロ除算エラー(エラー番号11)の場合に適切な値を代入することができます。。

例えば、以下のようなコードを使うことができます。。

Dim result As Double On Error Resume Next result = ((M2 + N2) - O2 P2) / Q2 If Err.Number = 11 Then result = 0 Err.Clear End If On Error GoTo 0 最初にresultを宣言し、On Error Resume Nextでエラーが発生もプログラムが停止しないようにします 式の計算を行います Err.Numberが11(ゼロ除算エラー)の場合、resultに0を代入します Err.Clearでエラーをクリアします On Error GoTo 0でエラートラップを解除します このようにすれば、Q2が0の場合にresultに0が代入されるはずです。。

間違いかも違反報告…続きを読む Q2 = 0 Then result = 0 Else result = ((M2 + N2) - O2 P2) / Q2` のように記述します。。

これにより、Q2が0のときに0を返すことができます。。

エラー処理を適切に行うことで、意図しない結果を防ぐことが可能です。。

参考に