将TextBox.Value转换为Double转换为VBA(Excel 2013)

4es*_*est 2 double excel vba type-conversion excel-vba

我将TextBox放入我的表单中,用户可以在其中输入值.在VBA中,我需要将值从string转换为double.

我这样做:

Private Sub UserForm_Initialize()

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

End sub
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

在此输入图像描述

Pᴇʜ*_*Pᴇʜ 6

CDbl期望已经是一个数字,但如果文本框为空,TextBox6.Value则为空字符串.CDbl无法将空字符串转换为double.

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

If IsNumeric(TextBox6.Value) Then
    new_value = CDbl(TextBox6.Value)
Else
    new_value = 0
End If
Run Code Online (Sandbox Code Playgroud)

或者,该Val()功能可能是您的选择.

new_value = Val(TextBox6.Value)
Run Code Online (Sandbox Code Playgroud)