Excel中缺少WorksheetFunction.value()

时间:2016-11-03 13:17:49

标签: excel vba excel-vba

在电子表格公式中,=VALUE("$100")将计算为100的数值。然后我尝试通过WorksheetFunction对象在VBA中访问此函数,但它不存在。

在VBA中,我尝试了转换函数Val("$100"),但是返回0.那么如何通过VBA实现此目的呢?

2 个答案:

答案 0 :(得分:0)

Val()只有在字符串是我害怕的所有数字时才真正起作用 - 货币符号会导致问题。

如果您总是在字符串中使用相同的货币符号,则可能值得使用

之类的内容
// this need to be in appdelegate didFinishLaunchingWithOptions
[[UITabBar appearance] setUnselectedItemTintColor:[UIColor blackColor]];

通过用“”替换它来取出$ - 否则,如果你的字符串并不总是可预测的,那么下面的问题可能会有所帮助:

How to find numbers from a string?

答案 1 :(得分:0)

请参阅https://docs.microsoft.com/en-us/office/vba/api/excel.worksheetfunction.numbervalue

上面使用示例,它将返回-1234.56的值:

MsgBox WorksheetFunction.NumberValue("-$1,234.56", ".", ",")

请注意,如果结果为非数字,则将引发错误。例如(交换逗号分组和十进制字符参数在这种情况下无效):

MsgBox WorksheetFunction.NumberValue("-$1,234.56", ".", ",")

error detail

我不明白为什么上面的链接没有任何版本信息。它的当前日期为2019-05-23-不知道这是因为它是新的还是最近更新的。