VBA Excel:如何存储实数,但在文本框中显示舍入的数字?

VBA Excel:如何存储实数,但在文本框中显示舍入的数字?,excel,textbox,vba,Excel,Textbox,Vba,我在计算一组值,比如密度和体积。我将它们显示在表单上,当用户单击“更新”时,我将该数字保存到工作表中 有很多数字,所以我想整洁地显示四舍五入的版本,而不会丢失精度更好的数字 像 当数据最终写入工作表时,我希望能够存储完整的精度,如: Sub UpdateWS() Sheets(1).Range("A:A") = me.txtDensity ' put value 0.78022134 on worksheet End Sub 文本框是否有一个备用字段,我可以在其中存储完整的数字

我在计算一组值,比如密度和体积。我将它们显示在表单上,当用户单击“更新”时,我将该数字保存到工作表中

有很多数字,所以我想整洁地显示四舍五入的版本,而不会丢失精度更好的数字

当数据最终写入工作表时,我希望能够存储完整的精度,如:

Sub UpdateWS()    
  Sheets(1).Range("A:A") = me.txtDensity   ' put value 0.78022134 on worksheet
End Sub
文本框是否有一个备用字段,我可以在其中存储完整的数字而不显示它,或者我是否需要为每个包含完整值的实数设置一个隐藏的文本框


谢谢

您可以使用
文本框
标记
属性来存储值。下面是一个简单的例子:

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

在这种情况下,理想的做法是创建一个userform实例,并将值作为
属性
传递给它,然后当用户单击“确定”时,将计算出的值作为另一个
表单属性
返回。这里有一个,还有一个,给你一个大概的想法。您可以使用这些概念并修改文本框。

我刚刚阅读了您的一些其他问题,现在真的鼓励您采用我提到的第二种方法,即实例化一个UserForm类,将数据传递给它的属性,然后将结果传回。关于这一点,我所知道的最深入的讨论,请阅读。谢谢道格。这些都是好主意。我迫不及待地想尝试一些课程,并开始创建它们,但由于时间紧迫,我真的没有时间去完成。在我有更多的时间之前,Tag属性现在会很好地工作。很高兴听到这个消息!既然这听起来对你有用,请接受以下建议,帮助我实现下一个10公里的目标:)我只想补充一点,我得到了《专业Excel开发》一书,它非常有用。而且,我最后的决定是做我一开始应该做的工作,如果我知道怎么做的话。也就是说,我创建了一个类来镜像表单中的信息(加上额外的字段)。每次我在表单上显示信息(如.8014),我都会在类中存储实际值(如.8014278933)。我还在类中存储各种有用的标志和计算。谢谢你给我指明了正确的方向。
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