2016-04-01 14 views
0

Bir grup activex metin kutusu var ve yapmak istediklerim belirli bir metin kutusu sayısı için sayı biçimini değiştirmek.vba numara biçimi: birden çok activex metin kutusu için biçimi değiştirme

Sonuçta, istediğim tüm metin kutularını kodlayabileceğim tek bir alt yordam istiyorum - textbox1, textbox2, textbox15 - metin kutusunun sayısı alakasız ve sayı biçimi "###, ###, # ##". Örneğin ...

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

Ben metin kutusu subs bir demet olmamasından önlemek çalışıyorum.

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

ve sonra başka alt ...

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

ve başka alt ...

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

Örnek

mantıklı umuyoruz. Teşekkürler!

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

ama çalışmıyor:

denedim.

Ayrıca genel bir alt ad oluşturmayı ve biçim kodunu koymayı denedim, ancak çalışmadım.

Eğer birisi bana yardım edebilirse, bu çok takdir edilecektir.

Teşekkürler.

cevap

0

Access is bu, textbox'ın .Format özelliğini ayarlamanız gerekir. Metin kutusu nesnesini bir biçime eşit olarak ayarlamanız yeterlidir. Nesne formatları eşit olamaz. İlgili TextBox1.Text = Format(TextBox1.Text, "###,###,###")


: Bu farklı bir Office VBA uygulamaları ise TextBoxt.Format("###,###,###")

, o zaman metni biçimlendirmek ve bunun gibi yeni biçimlendirilmiş metne metin 's .Text özelliğini ayarlamak isteyeceksiniz: Böyle bir şey deneyin benim yorumum aşağıda. Neden sadece workbook_open olayını kullanmıyorsunuz?

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

Geri bildiriminiz için teşekkür ederiz. Excel'de kodluyorum. Maalesef, tüm/herhangi bir metin kutusunu listeleyebileceğim ve formatı değiştirebileceğim bir alt soruna sahip olmak istememe dair ilk sorumu çözmüyor. – Tim

+0

Benim hatam. Sorununuzun kodun çalışmadığını düşündüm. Sadece kodunuzu test ettim ve textbox1 değiştirildiğinde tüm metin kutularınızın sayı formatını değiştirir. Sorunuz, herhangi biri değiştiğinde, birden fazla metin kutusunun biçimini değiştiren bir alt nasıl yapılır? Örneğin, ben textbox5 yazdığımda, hepsi değişiyor ve ben textbox2 yazdığımda hepsi değişiyor? Eğer öyleyse, formatlama mantığını ne belirler? IE, 5 değişiklik olduğunda kullanılan 2 formatta değişiklik olduğunda hangi formatın kullanıldığını nasıl belirleriz? – Tim

+0

[this] (http://stackoverflow.com/questions/10655262/active-control-change-event-ms-access) aradığınız nedir? – Tim