簡體   English   中英

EXCEL VBA InputBox確定/取消

[英]EXCEL VBA InputBox Ok/Cancel

基本上我需要2個輸入框。 第一個輸入框將要求用戶輸入一個值,然后在用戶單擊“確定”后提示第二個輸入框。 第二個輸入框中的默認值將是第一個輸入框中的值右邊一個單元格的值。 這是我想要實現的,但inputbox的問題是“取消”按鈕會拋出錯誤消息或不以任何方式退出sub。

那么還有其他類似的方法可以實現我的目標嗎? 在此先多謝!

每當按下取消按鈕時, 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

我可以給您確切的答案,但是我相信這會幫助您入門;)如果沒有,請發回:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM