excel - VBA Excel : How can I store a real number but display a rounded number in a textbox?

标签 excel textbox vba

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

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

喜欢

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

文本框是否有一个备用字段,我可以在其中存储完整数字而不显示它,或者我是否需要为每个包含完整值的实数设置一个隐藏文本框?

谢谢

最佳答案

您可以使用 TextBoxTag属性来存储值。这是一个简单的例子:

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/

相关文章:

excel - 我想从网页中提取数据,但最后我无法在工作表中写入数据。数据是表格形式(多行,列)?

excel - 使用 selenium 将文件下载到特定目录

excel - Excel 中的自动超链接?

c# - 00 :00 Time Format > 24 的正则表达式

excel - 在 Active Directory 中搜索锁定的帐户 (Excel/VBA)

javascript - Jquery - 文本框接受不超过 24 和 60 的数字

wpf - 从 WPF RichTextBox 中的行号计算 ScrollToVerticalOffset 的偏移量

vba - 从逗号分隔的字符串填充变体数组

excel - 检查单元格范围没有范围名称后为其命名

在多个子文件夹中搜索文件的VBA宏