Page 1 of 1
VBA ต้องการหาจำนวน Textbox ทั้งหมด แล้วใส่ข้อมูลค่าเริ่มต้นไว้ในนั้น ต้องปรับโค้ดอย่างไรครับ
Posted: Sat Aug 06, 2022 6:09 pm
by 10idlnw
สมมติผมมี textbox 5 ตัว ผมใส่ค่าเริ่มต้นเป็น 1-5 ในแต่ละ Textbox ได้แล้ว แต่ถ้าผมอยากใส่เช่น (สมชาย,ใจชาย,0911544879,เลี้ยงไก่,ชอบกินข้าว) ผมต้องปรับโค้ดอย่างไรครับ
Code: Select all
Dim cCTL As Control
Dim iCTR As String
iCTR = Array(sss, aaa, bbb, ccc, eee)
For Each cCTL In Me.Controls
If TypeName(cCTL) = "TextBox" Then
iCTR = iCTR
cCTL.Value = iCTR
End If
Next cCTL
Re: VBA ต้องการหาจำนวน Textbox ทั้งหมด แล้วใส่ข้อมูลค่าเริ่มต้นไว้ในนั้น ต้องปรับโค้ดอย่างไรครับ
Posted: Sat Aug 06, 2022 6:59 pm
by snasui

ตัวอย่างการปรับ Code ลองประยุกต์ใช้ดูครับ
Code: Select all
Dim cCTL As Control
Dim iCTR As Variant
Dim i As Integer
'iCTR = Array(sss, aaa, bbb, ccc, eee)
iCTR = VBA.Split("สมชาย,ใจชาย,0911544879,เลี้ยงไก่,ชอบกินข้าว", ",")
i = 0
For Each cCTL In Me.Controls
If TypeName(cCTL) = "TextBox" Then
cCTL.Value = iCTR(i)
i = i + 1
End If
Next cCTL
'Other code
Re: VBA ต้องการหาจำนวน Textbox ทั้งหมด แล้วใส่ข้อมูลค่าเริ่มต้นไว้ในนั้น ต้องปรับโค้ดอย่างไรครับ
Posted: Sat Aug 06, 2022 8:30 pm
by 10idlnw
ขอบคุณมากครับอาจารย์ นำไปปรับใช้ได้ตามวัตถุประสงค์แล้วครับ ผมขอถามต่ออีกอย่างหน่อยครับ กรณีเปลี่ยนชื่อ Textbox และวางสับตำแหน่งจนจำไม่ได้ว่าอันไหนอยู่ก่อนอยู่หลัง มันเลยสับกันมั่วไปหมด ถ้าต้องการปรับให้มันเรียงกันถูกต้อง ต้องทำอย่างไรครับ โดยที่ไม่ต้องย้าย Textbox สับไปมาครับ
Re: VBA ต้องการหาจำนวน Textbox ทั้งหมด แล้วใส่ข้อมูลค่าเริ่มต้นไว้ในนั้น ต้องปรับโค้ดอย่างไรครับ
Posted: Sat Aug 06, 2022 10:46 pm
by snasui

การจะดูว่าใน UserForm ที่สร้างขึ้นมี Object ใด ให้ชื่อเป็นอะไรบ้าง สามารถเข้าไปที่ UserForm นั้นแล้วดูผลลัพธ์ที่หน้าต่าง Tab Order ดังภาพ สามารถจัดลำดับ Order โดยคลิกปุ่ม Move Up, Move Down ได้ตามต้องการครับ