MsgBox vbOKCancel在单元格中留下1或2

时间:2013-08-13 23:32:48

标签: excel-vba vba excel

我正在使用类型为8的输入框(单元格引用/范围)。所选范围的部分验证是使用下面的MsgBox。

问题是当你选择一个错误的范围并且MsgBox提示你时,如果你点击Ok它会在单元格中留下数字2,如果你点击Cancel它会留下数字1在牢房里。

ElseIf myRange.Value = "" Or myRange.Value = 0 Then   

  '... 

   myRange = MsgBox("Please Select a Valid Code. Try again?", vbOKCancel + vbQuestion)
   If myRange = vbCancel Then 'No retry
       Exit Sub
   Else 'retry
       Run "MyCellToCorrect"
   End If

Else

1 个答案:

答案 0 :(得分:1)

您要将MsgBox的返回值(vbOK(1)或vbCancel(2)分配给该范围。您应该将其分配给数字变量,然后测试该变量:

Dim Res As Integer
....

Res = MsgBox("Please Select a Valid Code. Try again?", vbOKCancel + vbQuestion)
If Res = vbCancel Then 'No retry
    Exit Sub
Else 'retry
    Run "MyCellToCorrect"
End If