2013-02-11 39 views
8

Mã của tôiVBA Excel, không phù hợp cho inputbox như nguyên

Dim a As Integer 
a = InputBox("Enter the number", "Program", "", 7000, 6000) 
If a = Empty Then 
    ' do code... 
Else 
    MsgBox "Enter the number." 
End If 

Nếu tôi rời khỏi một cánh đồng trống, Excel trả về một lỗi Type Mismatch. Tôi muốn hiển thị một tin nhắn.

Trả lời

11

Kể từ a là một Integer, nó không thể chứa một String hoặc được Empty. Sử dụng một Variant và sau đó kiểm tra để xem những gì đã được trả lại:

Dim a As Variant 
Dim b As Integer 

a = InputBox("Enter the number", "Program", "", 7000, 6000) 

If Not IsNumeric(a) Then 
    'a is not a number 
Else 
    'a is a number and can be converted to Integer 
    b = CInt(a) 
End If 
4

Bạn có a được định nghĩa là Integer. Integer không được để trống. Sử dụng Variant thay vì Integer:

Dim a As Variant 
a = InputBox("Enter the number", "Program", "", 7000, 6000) 
If a = Empty Then 
    ' do code... 
Else 
    MsgBox "Enter the number." 
End If 
+1

+1 cho câu trả lời đúng đầu tiên - mặc dù bạn muốn 'Nếu IsEmpty (a) Then' – brettdj

+0

tôi 1 tới Brett) –

+0

@brettdj tại sao don Bạn không đăng câu trả lời của riêng mình? :) –