0

我有一个棘手的问题:只有用户输入“P 加 4 个随机数字”

*(eg:P1234) *进入输入框将视为有效代码并停止运行宏,除非它会运行直到输入有效代码。我想我差不多完成了,但仍然没有什么问题。这是我的代码:

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语句代码以减少可怕的混乱。您的 Sub 归结为:

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

提示:任何时候你发现自己在一个过程的多个地方重写了完全相同的一段代码,那么你以后可能会后悔。你写了strcode = InputBox("what is your production code?")两次......如果你想稍后改变问题怎么办?你必须在两个地方都改变它,否则它会看起来很奇怪。更好地重构您的代码,以便您只编写任何给定的代码行一次。

于 2013-11-01T07:59:27.807 回答