基本上我需要2个输入框。首先输入框会要求用户输入一个值,然后在用户单击确定后提示第二个输入框。第二个输入框中的默认值将是第一个输入框中值的右侧一个单元格的值。这是我想要实现的,但inputbox的问题是,取消按钮,它会抛出错误消息或不会以任何方式退出子。EXCEL VBA输入框确定/取消
那么在实现我的目标方面还有其他类似的方法吗?提前感谢!
基本上我需要2个输入框。首先输入框会要求用户输入一个值,然后在用户单击确定后提示第二个输入框。第二个输入框中的默认值将是第一个输入框中值的右侧一个单元格的值。这是我想要实现的,但inputbox的问题是,取消按钮,它会抛出错误消息或不会以任何方式退出子。EXCEL VBA输入框确定/取消
那么在实现我的目标方面还有其他类似的方法吗?提前感谢!
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
由于这是您想要的值,请不要使用InputBox
。使用Application.Inputbox
。如果您在Excel中按魔术键F1
,并且输入Application.Inputbox
,则会看到一些不可思议的文字;
以下是一个示例用法。
Ret = Application.InputBox(prompt := "Please enter a value", type := 1)
请注意类型1
。
我可以给你一个确切的答案,但我相信这会让你开始;)如果不是,然后回发:)
你有什么试过?根据我对VB6的经验,似乎'InputBox(“Prompt”,“TITLE”,“default”)'可以正常工作 – James 2013-04-22 17:55:16
当我在第一个输入框上单击确定时,它将转到第二个输入框。但是,如果我点击第一个输入框上的取消按钮,它不会退出子。 – 2013-04-22 18:02:20
你有任何可以发布的代码片段吗? – James 2013-04-22 18:03:18