多个输入框一个测试空输入

时间:2014-06-02 13:58:55

标签: vba excel-vba excel

好的,所以我为用户弹出了一系列输入框,我知道我想检查用户是否点击取消或“X”然后我必须检查其返回值。

EX answer = inputbox(“lelele”)如果answer =“”则结束,否则结束if。

我的问题是我连续有4个输入框,我不想为每个输入框都做一个单独的if语句所以有一种方法我可以在某种try catch块中检查所有三个循环?

以下是我实际使用的代码。请记住,我试图在整个过程中的每一步都取消,所以任何时候任何人点击取消该程序会立即停止运行。

'column you want to first select for copying
ColSelect = InputBox("which column do you want to select ColCopyFrom") 
'the column you are comparing it to
ColCompare = InputBox("which column do you want to compare to ") 
'where you are copying data from
ColCopyFrom = InputBox("which column do you want to copy data ColCopyFrom") 
'where you are copying data to
ColCopyTo = InputBox("which column do you want to copy data to") 

<

这就是我想要为每个盒子做的事情

if ColSelect = "" then
  exit
else
'do nothing
end if

if ColCompare = "" then
  exit
else

end if

2 个答案:

答案 0 :(得分:1)

你可以将输入框包装成一个函数,将提示作为参数传递给这样的参数并使用END来打破:

Function myInputBox(prompt As String) As String
    Dim ib As String
    ib = InputBox(prompt)

    If ...
    '... do some checking here
    Else
        End 'stop dead here
    End if


    myInputBox = ib
End Function

另一方面,您可能会考虑使用UserForm代替增强可用性。

答案 1 :(得分:0)

你能创建一个函数并调用它来检查每个输入吗?通过创建一个函数,一旦你可以根据需要多次调用它,在你的情况下4次。当您调用该函数时,您可以替换该变量以检查

'first inputbox
Call checker(ColSelect)

'second input box
Call checker(ColCompare)

'etc

这是要检查的功能,您将看到变量名称是取消。这将输入变量(在示例ColSelect中),然后为其指定新名称。这可以是你喜欢的任何东西

sub checker(cancel)

    if cancel = "" then
        exit
    else
        'do nothing
    end if

end Sub