为什么VBA提出一个“类型不匹配”错误,当我使用“格式(字符串变量,‘####’)和字符串变量的值设置为0.0
问题描述:
我的股票交易代码格式的价格变化(单变量)发送到我的手机,并限制无意义数字的数量当价格变化为零时,模块会产生一个“类型不匹配”的错误,所有的非零值都可以正常工作,我写了一个简单的模块来展示这种行为。为什么VBA提出一个“类型不匹配”错误,当我使用“格式(字符串变量,‘####’)和字符串变量的值设置为0.0
Sub test_format()
Dim test_single As Single, output As String
test_single = 0#
output = Str(Format(test_single, "###.#"))
Debug.Print test_single; output
End Sub
答
您需要删除STR()函数
Sub test_format()
Dim test_single As Single, output As String
test_single = 112.25
output = Format(test_single, "##0.0")
Debug.Print output
End Sub
我的输出:
112.3
编辑:更新格式为“## 0.0”。现在,如果你得到的值为0.0,它不会只返回“。”,但实际上会返回0.0
你不应该需要在格式函数上应用str(),因为格式函数总是返回一个字符串。如果你想确保格式只接受一个字符串,那么在Str函数中封装变量(在这种情况下是test_single)。请记住,虽然Str需要数字输入。 –