在 Excel 单元格中读取双精度数(数字)

问题描述 投票:0回答:1

我正在从 Excel 工作表中读取值,并让用户检查这些数字/文本,如果正确则再次点击“保存”。它适用于任何文本和数字,除了我的折扣是双精度类型。

Private Sub UserForm_Initialize()

' filling form
TextHN.Text = Range("D3")
'...
' original: TextDP.Text = Range("D7") - but wouldn't read in 12.5
' therefore tried below as well
 Dim new_value As Double
    If IsNumeric(Range("D7").Value) Then
        new_value = CDbl(Range("D7").Value)
        MsgBox new_value # displays 12.5
        Else
        new_value = 1
    End If
    TextDP.Text = CStr(CDbl(new_value))
    MsgBox TextDP.Text # displays 12

我读了几篇文章(Convert TextBox.Value to Double into VBA (Excel 2013) & https://www.mrexcel.com/board/threads/textbox-value-to-double.1066876/),但是没有任何帮助。 我需要如何更改代码才能在 TextDP 中显示我的折扣? (我可以将其作为双倍读入 Excel 文件)

更新截图:

Excel table UserForm

令我惊讶的是,它正确显示了医院名称和缩写(并相应保存),但没有显示折扣百分比和有效期......

excel vba textbox double
1个回答
0
投票

显然,SpinButton 或其他代码会影响 TextBox 的内容。

很有可能,处理 TextDP_Change 事件以设置相关的 SpinButton。然后 SpinButton_Change 将 TextDP 设置回来。

© www.soinside.com 2019 - 2024. All rights reserved.