2015-07-10 109 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