我正在从 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 文件)
更新截图:
令我惊讶的是,它正确显示了医院名称和缩写(并相应保存),但没有显示折扣百分比和有效期......
显然,SpinButton 或其他代码会影响 TextBox 的内容。
很有可能,处理 TextDP_Change 事件以设置相关的 SpinButton。然后 SpinButton_Change 将 TextDP 设置回来。