gpt4 book ai didi

VBA 变体溢出

转载 作者:行者123 更新时间:2023-12-04 21:54:18 24 4
gpt4 key购买 nike

我正在运行我在网上找到的以下功能

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"

Result: Overflow

"3aaab 23as454s24hhhhhhhhhhhhhhhhhhhhhhad"

Result: 32345424

"^&asdasd^&sdasd^&^6776**^*&^asdasd"

Result: 6776

"5asdasd 7 h4gregw56u 5 45j2dfg dfgdj46 n5k42n2"

Result: Overflow


知道为什么其中一些工作正常吗?有些不是?

最佳答案

您正在为 Long 分配一个号码多变的。根据the documentation一个 Long可以接受不超过 2,147,483,647 的任何数字.

因此,如果您尝试分配数字 3,234,542,423,423,则会出现溢出。 (即从 "3aaab 23as454s24h23423ad" 中取出非数字字符后的数字)或 574,565,452,465,422 (即从 "5asdasd 7 h4gregw56u 5 45j2dfg dfgdj46 n5k42n2" 中取出非数字字符后的数字)。

关于VBA 变体溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47877139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com