我在VBA用户表单中有一个texbox,用户将在其中输入数字,这些数字将被转移到Excel电子表格进行计算。
我希望当用户在文本框中输入数字时,它会将其显示为数字。
每个例子:2000000,我希望它在文本框中为2,000,000.00。
有可能吗?
我试过了:
Public Sub UserForm_Initialize()
TextBox1 = Format(TextBox1, "$#,##0.00")
End Sub
但Userform并没有改变。
如果我尝试以下
Private Sub TextBox1_Change()
TextBox1 = Format(TextBox1, "$#,##0.00")
End Sub
userform充分显示数字,但是然后使用文本格式而不是数字来完成excell spredsheet,并且计算不会运行。
有没有人知道如何处理这个?
答案 0 :(得分:3)
这是一种解决方法,使用第二个子例程以字符串格式获取值。
Private Sub TextBox1_Change()
TextBox1 = Format(TextBox1, "$#,##0.00")
End Sub
然后转换分配了此值的单元格的格式。
Range("A1").Value = CDbl(Range("A1").Value)
答案 1 :(得分:2)
双击文本框然后 您应该使用AfterUpdate事件
Private Sub txtmoney_AfterUpdate()
Me.txtmoney.Value = Format(Me.txtmoney.Value, "$#,##0.00")
End Sub
答案 2 :(得分:1)
我写这篇文章解决了它
Range("A1").value = textbox1.value
代替此
Range("A1").value = textbox1
在我的情况下,.value
有所作为。
答案 3 :(得分:0)
只需将目标列的格式设置为数字格式,就不必费心文本框。
答案 4 :(得分:0)
使用退出事件进行格式化,因为更改事件会在您键入时尝试重新格式化,甚至可能不允许您输入整数。
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1 = Format(TextBox1, "$#,##0.00")
End Sub