我的表单中有TextBox,用户可以在其中输入值。
在VBA中,我需要将值从字符串转换为双精度。

我这样做:

Private Sub UserForm_Initialize()

    '....some code
    Dim new_value As Double
    new_value = CDbl(TextBox6.Value)

End sub


但我收到以下错误:

excel - 将TextBox.Value转换为Double到VBA(Excel 2013)-LMLPHP

最佳答案

CDbl应该已经有一个数字,但是如果文本框为空,则TextBox6.Value为空字符串。 CDbl不能将空字符串转换为双精度型。

您可以先验证文本框是否为数字值,以避免这种情况

If IsNumeric(TextBox6.Value) Then
    new_value = CDbl(TextBox6.Value)
Else
    new_value = 0
End If


另外,您可以选择Val()函数。

new_value = Val(TextBox6.Value)

07-27 13:49