Page 1 of 1
ต้องการให้สร้างTextboxอัตโนมัติตามจำนวนที่รับค่า
Posted: Wed Oct 23, 2019 1:21 am
by tanusorn
สวัสดีครับ ต้องการให้สร้างTextboxอัตโนมัติตามจำนวนที่รับค่ามา ใน userform ใหม่ครับ ตามภาพครับ ควรเขียน code ยังไงหรือมีคำสั่งไหนที่สามารถทำได้ไหมครับ
1.jpg
ตอนนี้ผมลองเขียนโค้ดได้แค่การรับค่าและเด้งไป userform ใหม่ครับ
Code: Select all
Private Sub CommandButton1_Click()
Dim machinenum As Integer
Dim mannum As Integer
Dim worknum As Integer
machinenum = TextBox1
mannum = TextBox2
worknum = TextBox3
UserForm3.Hide
UserForm2.Show
End Sub
ขอบคุณครับ
Re: ต้องการให้สร้างTextboxอัตโนมัติตามจำนวนที่รับค่า
Posted: Wed Oct 23, 2019 7:41 am
by snasui
มีคำสั่งที่ทำได้แต่ต้องเขียน Code พวกนั้นมาเองก่อน จะทำสิ่งใดก็ต้องมีคำสั่งนั้น จะผิดจะถูกไม่ใช่ประเด็น ประเด็นคือเขียนมาก่อน ติดแล้วค่อยถามกันต่อ คำสั่งที่เขียนมายังไม่มี Code สำหรับการเพิ่ม Object การปรับขนาด การจัดเรียง ฯลฯ ครับ
การให้สร้าง Object แบบที่ถามมานี้เรียกว่า On the fly มีความยุ่งยากในการจัดการเพราะต้องวางให้เป็นระเบียบ ตรงกับ Object ที่มีก่อนหน้า ทางเลือกหนึ่งคือสร้างเอาไว้ก่อนล่วงหน้าให้พอกับงานที่ต้องใช้ จากนั้นค่อยซ่อนหรือยกเลิกการซ่อนตามค่าที่ผู้ใช้งานกรอก ปรับขนาด Form ให้เห็น Object เท่าจำนวนบรรทัดที่ผู้ใช้กรอกเช่นนี้เป็นต้น การทำงานลักษณะนี้จะง่ายกว่า สร้าง ลบ จัดเรียงใหม่ ในการทำงานแต่ละครั้งที่ต้องเขียน Code จำนวนมากครับ
Re: ต้องการให้สร้างTextboxอัตโนมัติตามจำนวนที่รับค่า
Posted: Wed Oct 23, 2019 1:31 pm
by tanusorn
ขอบคุณสำหรับคำแนะนำครับ จะนำไปปรับปรุงแก้ไขและนำไปพัฒนาตนเองต่อไปครับ
Re: ต้องการให้สร้างTextboxอัตโนมัติตามจำนวนที่รับค่า
Posted: Thu Oct 24, 2019 11:37 pm
by tanusorn
ตอนนี้ผมลองเขียนโค้ดรับค่าจำนวน Textbox ที่ต้องการมาเก็บไว้ในรูปแบบ Array และผมต้องการให้มันวน loop เพื่อแสดงTextbookตามจำนวนค่าที่รับมา ไม่สำเร็จครับ มันขึ้นว่า Sub or Function not defined ครับ
นี่โค้ดที่ลองเขียนครับ
Code: Select all
Private Sub CommandButton1_Click()
Dim machinenum As Integer
Dim mannum As Integer
Dim worknum0 As Integer
Dim worknum(100) As Integer
Dim i As Integer
'machinenum = TextBox1
'mannum = TextBox2
worknum0 = TextBox3
For i = 0 To worknum0
If i <> 0 Then
worknum(i) = i
worknum0 = worknum0 - 1
End If
Next i
TextBox4.Visible = False
TextBox5.Visible = False
TextBox6.Visible = False
TextBox7.Visible = False
TextBox8.Visible = False
For i = 0 To UBound(worknum)
If i <> 0 Then
textbox(3 + i).Visible = True
worknum0 = worknum0 - 1
End If
Next i
End Sub
ภาพหน้าต่าง Userform ครับ ตอนนี้ลองปรับให้การรับค่าข้อความและ จำนวนช่องให้ปรากฎใน Userform เดียวกันแล้วครับ
Untitled.png
Re: ต้องการให้สร้างTextboxอัตโนมัติตามจำนวนที่รับค่า
Posted: Fri Oct 25, 2019 9:13 pm
by snasui
กรุณาแนบไฟล์ล่าสุดมาด้วยจะได้ช่วยทดสอบให้ได้ครับ