snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
b5930304629
Member
Posts: 18 Joined: Sun Sep 29, 2019 8:01 pm
#1
Post
by b5930304629 » Tue Oct 22, 2019 6:24 am
สวัสดีค่ะ รบกวนช่วยดูให้หน่อยค่ะว่าสามารถกำหนดทศนิยมแบบใช้ For Loop ได้หรือไม่ เนื่องจากมีจำนวน textbox เยอะค่ะ ถ้าสามารถทำได้ต้องเขียน code อย่างไรคะ
ตัวอย่าง code บางส่วนค่ะ
Code: Select all
Private Sub TextBox134_Change()
TextBox134.Text = Format(TextBox134, "##0.000")
End Sub
Private Sub TextBox135_Change()
TextBox135.Text = Format(TextBox135, "##0.000")
End Sub
Private Sub TextBox136_Change()
TextBox136.Text = Format(TextBox136, "##0.000")
End Sub
Private Sub TextBox137_Change()
TextBox137.Text = Format(TextBox137, "##0.000")
End Sub
Private Sub TextBox138_Change()
TextBox138.Text = Format(TextBox138, "##0.000")
End Sub
Private Sub TextBox139_Change()
TextBox139.Text = Format(TextBox139, "##0.000")
End Sub
Private Sub TextBox140_Change()
TextBox140.Text = Format(TextBox140, "##0.000")
End Sub
snasui
Site Admin
Posts: 31214 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Tue Oct 22, 2019 7:04 am
ตัวอย่าง Code ครับ
Code: Select all
dim x as control
for each x in me.controls
if typename(x) = "TextBox" then
x.text = format(x.text,"##0.000")
end if
next x
Last edited by
snasui on Thu Oct 24, 2019 9:25 pm, edited 1 time in total.
Reason: แก้ earch เป็น each
b5930304629
Member
Posts: 18 Joined: Sun Sep 29, 2019 8:01 pm
#3
Post
by b5930304629 » Tue Oct 22, 2019 3:24 pm
รบกวนอาจารย์ค่ะ พอดีไม่เข้าใจ code อาจารย์ช่วยยกตัวอย่างได้ไหมคะ
snasui
Site Admin
Posts: 31214 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Tue Oct 22, 2019 7:50 pm
นำ Code นั้นไปวางตรง ๆ ใน UserForm ใด ๆ ที่ต้องการจะ Loop ไปยัง TextBox แล้วลอง Run Code สังเกตผลล้พธ์ที่ได้ ติดปัญหาตรงไหนค่อยแนบไฟล์พร้อม Code นั้นมาถามกันต่อครับ
b5930304629
Member
Posts: 18 Joined: Sun Sep 29, 2019 8:01 pm
#5
Post
by b5930304629 » Tue Oct 22, 2019 9:56 pm
ได้ลองนำ code ไปรันแล้วนะคะ โปรแกรมขึ้นแจ้ง error ว่า syntax error
TextBox ที่ต้องการให้มีทศนิยม 3 ตำแหน่ง อยู่ใน Userform3 TextBox137 ถึง TextBox217 รบกวนช่วยดูให้หน่อยนะคะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31214 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Tue Oct 22, 2019 10:06 pm
แก้ไข
earch เป็น
each ผมคีย์ตัว
r เกินไป 1 ตัวครับ
สำหรับการวาง Code ควรจะวางเมื่อต้องการ Validate ค่าในทุก TextBox ที่กำหนด ไม่ใช่วางตอน Initial เพราะยังไม่มีค่าใด ๆ ใน TextBox ให้กำหนด Format ครับ