2015-07-10 46 views
0

我有一個用戶輸入框作爲excel vba宏的一部分。我需要用戶能夠輸入一個11位數的數字,然後輸入到單元格中。但是,任何大於10位數的數字都會返回值0.我該如何解決這個問題?限制輸出來自Application.Inputbox

我的代碼是:

Dim lNum As Long 

On Error Resume Next 

    Application.DisplayAlerts = False 

     lNum = Application.InputBox _ 
     (Prompt:="Enter starting Number", _ 
       Title:="Starting Number", Type:=1) 



Application.DisplayAlerts = True 

Range("B1").Value = lNum 
+1

使用'雙'而不是'長'。並且不要僅僅將'On Error Resume Next'推到一個例程中,而不知道爲什麼! ;) – Rory

+0

「長」存儲值從-2,147,483,648到2,147,483,647。這只是10位數字,因此您的11位數字將被截斷。 – FreeMan

+0

和+11百到@Rory的關於'OERN'的評論! – FreeMan

回答

1

對於11位數字使用

Sub dural() 
    Dim lNum As Double 
    lNum = Application.InputBox(Prompt:="Enter starting Number", Title:="Starting Number", Type:=1) 
    Range("B1").Value = lNum 
End Sub 

例如:

enter image description here

結果於:

enter image description here