我正在计算一堆值,如密度和体积。我在表单上显示它们,当用户单击“更新”时,我将该数字保存到工作表中。
有很多数字,所以我想整齐地显示四舍五入的版本,而不会丢失更好的精度数字。
喜欢
Sub SetDensity()
dim rDensity as double
rDensity = 0.78022134
me.txtDensity = Format(rDensity,"0.00") ' user sees 0.78
End Sub
当数据最终写入工作表时,我希望能够存储完整的精度,例如:
Sub UpdateWS()
Sheets(1).Range("A:A") = me.txtDensity ' put value 0.78022134 on worksheet
End Sub
文本框是否有一个备用字段,我可以在其中存储完整数字而不显示它,或者我是否需要为每个包含完整值的实数设置一个隐藏文本框?
谢谢
最佳答案
您可以使用 TextBox
的Tag
属性来存储值。这是一个简单的例子:
Private Sub UserForm_Activate()
Me.TextBox1.Tag = 2.38232
Me.TextBox1.Value = Format(Me.TextBox1.Tag, "0.00")
Me.TextBox2.Tag = 4.99999
Me.TextBox2.Value = Format(Me.TextBox2.Tag, "0.00")
End Sub
Private Sub CommandButton1_Click()
MsgBox Me.TextBox1.Tag * Me.TextBox2.Tag
End Sub
在这种情况下,您最理想的做法是创建一个用户表单实例并将值作为
Properties
传递给它。 ,然后当用户单击“确定”时,您将得到计算值作为另一个 Form Property
.这是 post from my site ,还有一个来自 Daily Dose of Excel ,这给了你大致的想法。您可以使用这些概念并进行修改以使用文本框。
关于excel - VBA Excel : How can I store a real number but display a rounded number in a textbox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18197578/