Excel中缺少工作表函数.value()
在电子表格公式中,Excel中缺少工作表函数.value(),excel,vba,Excel,Vba,在电子表格公式中,=VALUE($100”)将计算为数值100。然后,我尝试通过WorksheetFunction对象在VBA中访问此函数,但它丢失了 在VBA中,我尝试了转换函数Val($100”),但返回0。那么我如何通过VBA实现这一点呢?Val()只有在字符串都是数字的情况下才真正起作用,我担心,货币符号会造成问题 如果字符串中总是有相同的货币符号,那么可能值得使用以下内容 StringName = replace(StringName, "$", "") 通过将$替换为“”,将其取出
=VALUE($100”)
将计算为数值100。然后,我尝试通过WorksheetFunction对象在VBA中访问此函数,但它丢失了
在VBA中,我尝试了转换函数Val($100”)
,但返回0。那么我如何通过VBA实现这一点呢?Val()只有在字符串都是数字的情况下才真正起作用,我担心,货币符号会造成问题
如果字符串中总是有相同的货币符号,那么可能值得使用以下内容
StringName = replace(StringName, "$", "")
通过将$替换为“”,将其取出-否则,如果字符串不总是如此可预测,下面的问题可能会有所帮助:
请参见
使用上面的示例,返回-1234.56的值:
MsgBox WorksheetFunction.NumberValue("-$1,234.56", ".", ",")
请注意,如果结果不是数字,则会抛出错误。例如(交换逗号分组和十进制字符参数,在本例中无效):
我不明白为什么上面的链接没有任何版本信息。目前日期为2019年-05-23-不知道这是因为它是新的还是最近更新的。
在电子表格公式中,=值($100”)将计算为100的数值
-你确定吗?在我的excel中,它的计算结果没有达到100@newguy mine也不这么认为,但有趣的是,它非常乐意为客户评估“100英镑”和“100欧元”100@danl您是在向该函数传递文本字符串,还是在引用货币格式的单元格。因为如果它是一根线,它就不会工作。它将与单元格引用一起工作,单元格引用有值,但只是格式化了。@newguy二者-我有两个单元格,按字面意思键入为=value(£100)和=value(€100),还有两个单元格是=value(B2),例如,其中B2='£100或'€100。这两种方法都工作正常,并且在使用$而不是$或€@Allen时,这两种方法都会引发错误:=VALUE(“$100”)
是否有效取决于区域设置和Excel的语言版本。他们的工作方式是一样的。因此,也许CDbl(“$100”)
可以在VBA中为您的Excel工作。Val()只有在字符串都是数字的情况下才有效-?Val(“42非真”)
.WorksheetFunction.NumberValue仅适用于Excel 365或v2019及以上版本。
MsgBox WorksheetFunction.NumberValue("-$1,234.56", ".", ",")