关于vba的问题做循环

时间:2013-10-31 23:50:48

标签: vba loops

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

输入框中的

*(例如: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

非常感谢!!

1 个答案:

答案 0 :(得分:0)

我将使用@TimWilliam的评论,并重新构建您的Do...Loop语句代码以减少可怕的混乱。你的潜艇归结为:

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?") ...如果您想稍后更改问题该怎么办?你必须改变它两个地方,否则它会看起来很奇怪。最好重新构建代码,以便只编写一次给定的代码行。