2

我正在使用类型为 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
4

1 回答 1

2

您将 的返回值(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
于 2013-08-13T23:53:15.267 回答