我有一个棘手的问题:只有用户输入“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
非常感谢!!
答案 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?")
...如果您想稍后更改问题该怎么办?你必须改变它两个地方,否则它会看起来很奇怪。最好重新构建代码,以便只编写一次给定的代码行。