0

難しい質問が 1 つあります。「P プラス 4 桁の乱数」を入力するのはユーザーだけです。

*(eg:P1234) *into inputbox は、有効なコードが入力されるまで実行されない限り、有効なコードと見なされ、マクロの実行を停止します。私はほぼ完了したと思いますが、まだほとんど問題はありません.Hereは私のコードです:

Sub asd()


Dim strcode As String
Dim strnumber As string

strcode = InputBox("what is your production code?")

Do Until strcode = InStr(1, strcode, "P",vbBinaryCompare) And Len(strcode) = 5 _ 
and strnumber = Mid(strcode, 2) and IsNumeric (strnumber)

strcode = InputBox("what is your production code?")

Loop

End Sub

どうもありがとうございました!!

4

1 に答える 1

0

@TimWilliamのコメントを使用し、Do...Loopステートメントコードを再構築して、ひどい混乱を減らします。あなたのサブはこれに要約されます:

Dim strcode As String
Do
    strcode = InputBox("what is your production code?")
Loop Until UCase(strcode) Like "P####"

ヒント: プロシージャ内の複数の場所でまったく同じコードを書き直すと、後で後悔することになるでしょう。2 回書きstrcode = InputBox("what is your production code?")ました... 後で質問を変更したい場合はどうすればよいですか? 両方の場所を変更する必要があります。そうしないと、奇妙に見えます。特定のコード行を 1 回だけ記述するように、コードを再構築することをお勧めします。

于 2013-11-01T07:59:27.807 に答える