0

これはおそらく簡単な修正だと思いますが、午前中ずっと困惑していました。

vba プロジェクトの先頭で、多くの変数を public として定義しました (「yn」で終わる変数はすべて String であり、残りは Variant または Single です)。プロジェクト全体のさまざまなサブが、一連の質問と回答を通じてこれらの変数を定義します。最後に、定義された変数を方程式にコンパイルしようとすると、エラーが発生します。

先週、別の最終式で同じプロセスをすでに実行しましたが、うまくいきました。各変数をチェックして、正しく入力されていることを確認し、コードに問題がないことを確認しました。助けてください!ありがとう!

    Public Sub Rth1 ()

    Dim Red1th as single

    If Width1thyn = vbYes Then
        If Length1thyn = vbYes Then
            If V1turnspeedyn = vbYes Then
                Red1th = ((Width1th + 20) / (1.47 * 20)) - 1
            Else
                Red1th = ((Width1th + 20) / (1.47 * V1turnspeedstudy)) - 1
            End If
        Else
            If V1turnspeedyn = vbYes Then
                Red1th = ((Width1th + Length1thstudy) / (1.47 * 20)) - 1
            Else
                Red1th = ((Width1th + Length1thstudy) / (1.47 * V1turnspeedstudy)) - 1
            End If
        End If
    Else
        If Length1thyn = vbYes Then
            If V1turnspeedyn = vbYes Then
                Red1th = ((Width1thstudy + 20) / (1.47 * 20)) - 1
            Else
                Red1th = ((Width1thstudy + 20) / (1.47 * V1turnspeedstudy)) - 1
            End If
        Else
            If V1turnspeedyn = vbYes Then
                Red1th = ((Width1thstudy + Length1thstudy) / (1.47 * 20)) - 1
            Else
                Red1th = ((Width1thstudy + Length1thstudy) / (1.47 * V1turnspeedstudy)) - 1
            End If
        End If
    End If

    MsgBox "Red Clearance Interval is " & Red1th, "vbOkOnly", "Red Clearance Interval"

    End Sub
4

1 に答える 1

0

vbYesから戻るときに使用しMsgBoxます。

MsgBox変数が戻り値に依存しない場合Booleanは、独自の列挙型を使用または割り当てることを検討してください (vb開始名の使用を避けます)。

また

vbYes前のコードの代入で使用していることを確認してください。

于 2013-07-29T15:56:20.483 に答える