Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 神秘溢出(错误6)_Excel_Vba_Overflow - Fatal编程技术网

Excel 神秘溢出(错误6)

Excel 神秘溢出(错误6),excel,vba,overflow,Excel,Vba,Overflow,我有一个子程序,由于我无法理解的原因,它会立即出错 例程的第一行尝试将值加载到变量中,但它出错了 UPCTGT = CLng(Sheets("Settings").Range("C3").Value) 单元格C3中的值是3800040260。为什么会导致溢出错误?需要转换为double。虽然我不知道为什么时间不够长。我认为数据类型有更大的潜力需要转换为double。虽然我不知道为什么时间不够长。我认为数据类型更有潜力ALong是一种32位有符号数据类型。使用32位(有符号)可以生成的最大数字是

我有一个子程序,由于我无法理解的原因,它会立即出错

例程的第一行尝试将值加载到变量中,但它出错了

UPCTGT = CLng(Sheets("Settings").Range("C3").Value)

单元格C3中的值是3800040260。为什么会导致溢出错误?

需要转换为double。虽然我不知道为什么时间不够长。我认为数据类型有更大的潜力

需要转换为double。虽然我不知道为什么时间不够长。我认为数据类型更有潜力

A
Long
是一种32位有符号数据类型。使用32位(有符号)可以生成的最大数字是2147486647


TL;DR

32位表示32位内存

2147486647
是可用的最大数字的原因是:

'// Dec to Binary
2,147,486,647 = 11111111111111111111111111111111
2,147,486,648 = 100000000000000000000000000000000
                                                ^
                                     '// That's a 33rd bit
第33位溢出该数据类型可用的内存量,因此溢出错误



但是,
Double
是一个64位有符号整数,有足够的空间:)

A
Long
是一种32位有符号数据类型。使用32位(有符号)可以生成的最大数字是2147486647


TL;DR

32位表示32位内存

2147486647
是可用的最大数字的原因是:

'// Dec to Binary
2,147,486,647 = 11111111111111111111111111111111
2,147,486,648 = 100000000000000000000000000000000
                                                ^
                                     '// That's a 33rd bit
第33位溢出该数据类型可用的内存量,因此溢出错误


但是,
Double
是一个64位有符号整数,有足够的空间:)

有符号长整数或长整数的范围为–2147483648到2147483647()。您正在尝试填充3800040260。有符号长整数或长整数的范围为–2147483648到2147483647()。你想把东西塞进3800040260。