输入框中的取消按钮不会更改Excel单元格中的值

时间:2014-04-08 08:47:58

标签: excel excel-vba vba

我正在运行VBA并且我有取消按钮的问题,如果按下取消按钮或退出按钮,我希望在单元格中不更改值。怎么办?

Private Sub Workbook_Open()
    Sheets("Start").Range("B1").Value = Application.InputBox(Prompt:="Insert Date", Type:=1)
    Cancel = True
End Sub

2 个答案:

答案 0 :(得分:3)

试试这个:

Private Sub Workbook_Open()
    Dim inpt
    inpt = Application.InputBox(Prompt:="Insert Date", Type:=1)
    If CStr(inpt) <> "False" Then Sheets("Start").Range("B1").Value = inpt
End Sub

我使用CStr(inpt) <> "False"代替inpt <> FalseIf inpt Then的原因是因为用户可以输入0(它是带有Type:=1的输入框的有效输入)

答案 1 :(得分:2)

类似的东西(我已将今天的日期作为默认选择)

Dim lngCnt As Long
lngCnt = Application.InputBox(Prompt:="Insert Date", Default:=Format(Now(), "dd-mmm-yy"), Type:=1)
If lngCnt = 0 Then
'user cancelled
Else
Sheets("Start").Range("B1").Value = lngCnt
End If