【发布时间】:2017-12-18 22:08:43
【问题描述】:
我正在运行我在网上找到的以下功能
Function ConvertStringToNumber(str As Variant) As Long
Dim retval As Variant
Dim i As Integer
retval = ""
For i = 1 To Len(str)
If Mid(str, i, 1) >= "0" And Mid(str, i, 1) <= "9" Then
retval = retval + Mid(str, i, 1)
End If
Next
ConvertStringToNumber = retval '''''''''ERROR HERE
End Function
我收到了错误Run-time error '6': Over Flow,根据我在网上找到的信息,这与我的系统资源有关
这些是我尝试过的输入:
“3aaab 23as454s24h23423ad”
结果:溢出
“3aaab 23as454s24hhhhhhhhhhhhhhhhhhhhd”
结果:32345424
"^&asdasd^&sdasd^&^6776**^*&^asdasd"
结果:6776
“5asdasd 7 h4gregw56u 5 45j2dfg dfgdj46 n5k42n2”
结果:溢出
知道为什么其中一些工作正常吗?有些不是?
【问题讨论】:
-
您返回的是
Long。retval需要适合Long。它被声明为As Variant是无用的,无论它的值如何,它都需要适合Long。整数值不能大于2^31-1。