VBA文本框中的格式编号

时间:2015-03-04 16:43:01

标签: vba excel-vba excel

我在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,并且计算不会运行。

有没有人知道如何处理这个?

5 个答案:

答案 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