vba数字格式:更改多个activex文本框的格式

时间:2016-04-01 16:58:53

标签: vba activex

我有一堆activex文本框,我想要做的是更改特定数量文本框的数字格式。

最终我只想要一个子程序,我可以编写我选择的所有文本框 - textbox1,textbox2,textbox15 - 文本框的数量无关紧要,数字格式为“###,###,## #”。例如......

Private sub textNumFormat_<whatever>() TextBox1.Text = Format(TextBox1.Text, "###,###,###") TextBox2.Text = Format(TextBox2.Text, "###,###,###") TextBox15.Text = Format(TextBox5.Text, "###,###,###") end sub

我试图避免没有一堆文本框子。实施例

Private Sub TextBox1_Change() TextBox1.Text = Format(TextBox1.Text, "###,###,###") End Sub

然后是另一个子......

Private Sub TextBox2_Change() TextBox2.Text = Format(TextBox2.Text, "###,###,###") End Sub

和另一个子......

Private Sub TextBox15_Change() TextBox15.Text = Format(TextBox15.Text, "###,###,###") End Sub

希望它有意义。谢谢!

我试过了:

Private Sub TextBox1_Change() TextBox1 = Format(TextBox1.Value, "###,###,###") TextBox2 = Format(TextBox1.Value, "###,###,###") TextBox5 = Format(TextBox1.Value, "###,###,###") TextBox10 = Format(TextBox1.Value, "###,###,###") End Sub

但它不起作用。

我还尝试创建一个通用子名称并放置格式代码,但也没有用。

如果有人可以帮助我,那将非常感激。

感谢。

1 个答案:

答案 0 :(得分:0)

如果这是Access,则需要设置文本框的.Format属性。您只是尝试将文本框对象设置为等于格式。对象不能等于格式。尝试这样的事情:TextBoxt.Format("###,###,###")

如果这是一个不同的Office应用VBA,那么您需要格式化文本并将文本框的.Text属性设置为新格式​​化的文本,如下所示:TextBox1.Text = Format(TextBox1.Text, "###,###,###")

关于我的评论如下。为什么不直接使用workbook_open事件?

Private Sub Workbook_Open()
    TextBox1 = Format(TextBox1.Value, "###,###,###")
    TextBox2 = Format(TextBox1.Value, "###,###,###")
    TextBox5 = Format(TextBox1.Value, "###,###,###")
    TextBox10 = Format(TextBox1.Value, "###,###,###")
End Sub