EXCEL VBA InputBox确定/取消

时间:2013-04-22 17:49:14

标签: excel vba

基本上我需要2个输入框。第一个输入框将要求用户输入一个值,然后在用户单击确定后提示第二个输入框。第二个输入框中的默认值将是第一个输入框中值右侧的一个单元格的值。这是我想要实现的,但输入框的问题是取消按钮,它会抛出错误信息或不会以任何方式退出子。

那么有没有其他类似的方法来实现我的目标?非常感谢提前!

2 个答案:

答案 0 :(得分:2)

每当按下取消按钮时,

InputBox(...)都会返回一个空字符串""

了解这一点,您可以检查每个输入的输入是否为""。如果在您遇到取消的任何时候,您都不会再继续了。

下面使用嵌套的if语句演示。

Sub Macro1()
    Dim x As String
    Dim y As String
    Dim yDefault As String

    x = InputBox("Prompt One", "TITLE ONE")

    If (x <> "") Then
            yDefault = GetDefaultValue(x)
            y = InputBox("Prompt Two", "TITLE TWO", yDefault)

        If (y <> "") Then
            MsgBox "X: " & x & vbCrLf & "Y: " & y, vbOKOnly, "RESULTS"
        End If
    End If
End Sub

Function GetDefaultValue(x As String) As String
    ' Your custom logic to grab the default value (whatever cell) goes here
    GetDefaultValue = "DEFAULT(" & x & ")"
End Function

答案 1 :(得分:0)

由于它是您想要的值,请不要使用InputBox。使用Application.Inputbox。如果您在Excel中按下魔术键F1并键入Application.Inputbox,那么您将看到一些神奇的文字突然出现;)

以下是一个示例用法。

Ret = Application.InputBox(prompt := "Please enter a value", type := 1)

注意类型1

我可以给你一个确切的答案,但我相信这会让你开始;)如果没有,那么回帖:)