-1

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

那么还有其他类似的方法可以实现我的目标吗?提前非常感谢!

4

2 回答 2

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
于 2013-04-22T18:13:46.357 回答
0

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

这是一个示例用法。

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

注意类型1

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

于 2013-04-22T20:24:53.353 回答