在更新的电子表格中自动将文本转换为数字

我有一个电子表格,由一个单独的应用程序填充,string是数字(例如,“654”,“0.005”)。 Excel不能对string进行计算。 由于我的电子表格每隔几分钟更新一次(行附加),我想编写脚本,自动将范围内的单元格转换为数字。

这是我的解决scheme,其中convertRange是一个范围,其中包含要转换为数字的string:

method OnChangeInSpreadsheet(): if changedCell is NOT in convertRange currentHeight = convertRange.height expand convertRange to include new rows convert the new rows' strings 

它变得复杂的原因是因为string到数字的转换会触发OnChangeInSpreadsheet函数,所以我必须小心,新的行被添加到convertRange之外。 任何人都能想到另一种解决scheme

谢谢!

你有没有尝试乘以1的string值,以便转换为数字? 前几天我有一个问题,数字被认为是string,不正确的行为。 解决办法是把它们乘以1。

让我解释一下:我在VBA编写了一个模块,用来从excel工作表中excel数字。 计算结果放在一个数组中,稍后在另一个工作表上作为修改的Excel公式的一部分“打印”(如指定的那样)。 我遇到的问题是小数(例如0.1234)没有在“”前面显示“0”。 在细胞中。 问题在于,excel将它们视为string而不是数字 。 即使当我通过Excel GUI改变格式的数字问题仍然存在。

注意:在编程中多次使用double / float来将整数转换为double / float

考虑到这一点,我将结果打印在乘以1的单元格中(as in "=function(...) * 1") ,这些工作。

我结束了使用ASAP实用程序function ,“将未识别的数字(文本?)更改为数字”。 我决定实际上并不需要在每次更新时都将文本转换为数字,所以我在OnWorkbookOpen方法中运行函数。

只需更改已经存在的单元就可以轻松运行ASAP实用程序function。 只需closuresApplication.EnableEvents,然后打开它,就像在上面的评论中如此帮助build议的那样。

感谢所有的帮助!

我只是find了一个简单的方法来自动转换任何需要的string:

 Application.Transpose(Application.Transpose(arrStrData))