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

vba数字格式:更改多个activex文本框的格式,vba,activex,Vba,Activex,我有一堆activex文本框,我想做的是更改特定数量文本框的数字格式 最终,我只需要一个子例程,我可以对我选择的所有文本框进行编码——textbox1、textbox2、textbox15——textbox的数量是不相关的,数字格式将为“####,####,###”。例如 Private子文本numformat() TextBox1.Text=格式(TextBox1.Text,“#####,###,###,##”) TextBox2.Text=格式(TextBox2.Text,“#####,##

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

最终,我只需要一个子例程,我可以对我选择的所有文本框进行编码——textbox1、textbox2、textbox15——textbox的数量是不相关的,数字格式将为“####,####,###”。例如

Private子文本numformat()
TextBox1.Text=格式(TextBox1.Text,“#####,###,###,##”)
TextBox2.Text=格式(TextBox2.Text,“#####,###,###,##”)
TextBox15.Text=格式(TextBox5.Text,“#####,###,###,##”)
末端接头

我尽量避免没有一堆文本框潜艇。范例

Private子文本框1_Change()
TextBox1.Text=格式(TextBox1.Text,“#####,###,###,##”)
末端接头

然后是另一艘潜艇

Private子文本框2_Change()
TextBox2.Text=格式(TextBox2.Text,“#####,###,###,##”)
末端接头

还有另一个

Private子文本框15_Change()
TextBox15.Text=格式(TextBox15.Text,“#####,###,###,##”)
末端接头

希望它有意义。谢谢

我试过:

Private子文本框1_Change()
TextBox1=格式(TextBox1.Value,“#####,###,###,##”)
TextBox2=格式(TextBox1.Value,“#####,###,###,##”)
TextBox5=格式(TextBox1.Value,“#####,###,###,##”)
TextBox10=格式(TextBox1.Value,“#####,###,###,##”)
末端接头

但它不起作用

我还尝试创建一个通用的子名称并输入格式代码,但也没有成功

如果有人能帮我,我将不胜感激


谢谢。

如果这是Access,您需要设置textbox的
.Format
属性。您只是试图将textbox对象设置为一种格式。对象的格式不能相同。试着这样做:
TextBoxt.Format(“#####,####,###”)

如果这是另一个Office apps VBA,则您需要格式化文本,并将文本框的
.text
属性设置为新格式化的文本,如下所示:
TextBox1.text=format(TextBox1.text,“######,######,######”


关于我下面的评论。为什么不直接使用工作簿打开事件

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

谢谢你的反馈。我正在Excel中编写代码。不幸的是,它并没有解决我最初的问题,我想有一个子,我可以列出所有/任何文本框和改变格式。我的坏。我以为你的问题是代码不起作用。我刚刚测试了你的代码,当textbox1发生变化时,它会改变你所有文本框的数字格式。你的问题是如何制作一个sub,在任意一个文本框发生变化时改变多个文本框的格式?例如,当我键入textbox5时,它们都会更改,而当我键入textbox2时,它们都会更改?如果是,是什么规定了格式化逻辑?也就是说,我们如何确定2次更改时使用哪种格式,以及5次更改时使用哪种格式?这是您想要的吗?不完全是。我修改了我的问题。希望我所问的更有意义。对于您之前的响应,可能“change”不是正确的对象函数名。谢谢。如果格式从未改变,为什么不在工作簿打开事件中设置数字格式呢?