如何在Excel VBA中以科学计数法使用= LEFT和= LEN函数?

问题描述 投票:0回答:1

[我正在尝试使用VBA编写Excel宏,当该单元格的长度超过20时,该宏将仅返回该单元格中的前5个数字。该字段通常返回15位字母数字结果(我需要不理会)但在某些例外情况下,将返回5位数字,其后跟多个零(1234500000000000000000000 ...),Excel将其转换为科学计数法(1.2345E + 160)。我能够将单元格转换为数字而不是科学计数法,并查看整个数字。

我尝试使用= IF(LEN(A1)> 20,LEFT(A1,5),A1)这样的代码,它只返回1.2345E + 160。即使显示了整数,Excel仍然认为单元格长度为11,因此不会显示前5位数字。

我也尝试过诸如= IF(A1 =“ E”,LEFT(A1,6),A1)之类的行,认为它可以检测到E,返回1.2345,我可以删除小数点,但这也不起作用(它只返回原始的1.2345E + 160)。

无论单元格是设置为数字还是文本格式,我都得到相同的结果。有没有解决的办法?

谢谢您的时间!

excel vba scientific-notation
1个回答
1
投票

您正在尝试对数字使用字符串操作。而是使用数学:

=A1/1E+160
© www.soinside.com 2019 - 2024. All rights reserved.