Page 1 of 1
ต้องการให้ข้อมูลเลื่อนขณะลงข้อมูล
Posted: Wed Jan 15, 2014 8:15 pm
by todunk85
ผมติดขัดปัญหาเมื่อใส่ข้อมูลเกิน 20 บรรทัดแล้วจะมองไม่เห็นข้อมูลที่ใส่ลงไป ต้องเลื่อนแถบด้านข้างครับ พอจะมีวิธีไหมครับ
และในช่องระหัสสินค้าเป็นไปได้ไหมที่จะให้ ใส่ได้แค่ 4 อักษรครับ ขอความช่วยเหลือหน่อยครับ ผมหัดเขียนใหม่ครับ
Re: ต้องการให้ข้อมูลเลื่อนขณะลงข้อมูล
Posted: Wed Jan 15, 2014 8:28 pm
by snasui
ลองปรับ Code เป็นตามด้านล่างครับ
Code: Select all
Private Sub CommandButton1_Click()
If Me.TextBox1.Value <> "" Then
Dim irow As Long
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Me.TextBox1.Text = Application.Trim(Me.TextBox1.Text)
'Find first empty row in database
irow = ws.Cells(Rows.Count, 2) _
.End(xlUp).Offset(1, 0).Row
'Copy The Data To The Database
ws.Cells(irow, 1).Value = Me.TextBox1.Value
ws.Cells(irow, 2).Value = Me.TextBox2.Value
ws.Cells(irow, 1).Select
Me.TextBox1 = ""
Me.TextBox2 = ""
Else
MsgBox "no product", vbCritical
End If
End Sub
กรณีต้องการกำหนดความยาวอักขระในการกรอกข้อมูลสามารถกำหนด Properties ตรง
MaxLength
โดยระบุค่าความยาวอักขระตามต้องการ
Re: ต้องการให้ข้อมูลเลื่อนขณะลงข้อมูล
Posted: Wed Jan 15, 2014 8:41 pm
by todunk85
ขอบคุณมากครับครูครับ ได้แล้วครับ แต่ต้องเพิ่ม
Unload Me
UserForm1.Show
ต่อท้ายหน่อยครับไม่งั้นใส่ข้อมูลลำบากครับ
ขอบพระคุณมากครับ
Re: ต้องการให้ข้อมูลเลื่อนขณะลงข้อมูล
Posted: Wed Jan 15, 2014 8:56 pm
by snasui
ช่วยอธิบายว่าใส่ข้อมูลลำบากอย่างไร เพื่อว่าจะได้เข้าใจสิ่งที่เป็นปัญหาครับ
Re: ต้องการให้ข้อมูลเลื่อนขณะลงข้อมูล
Posted: Wed Jan 15, 2014 10:26 pm
by todunk85
พอส่งข้อมูลไปแล้ว จะกลับมาใส่ใหม่ต้องใช้เมาส์คลิกครับ ครู เลยต้องใส่code เพิ่มเข้าไปครับ ครู ครับ
Re: ต้องการให้ข้อมูลเลื่อนขณะลงข้อมูล
Posted: Wed Jan 15, 2014 11:02 pm
by snasui
ตัวอย่างการ Set Forcus เพื่อให้ Active ที่ TextBox1 หลังจากวางข้อมูลแล้วครับ
Code: Select all
Private Sub CommandButton1_Click()
If Me.TextBox1.Value <> "" Then
Dim irow As Long
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Me.TextBox1.Text = Application.Trim(Me.TextBox1.Text)
'Find first empty row in database
irow = ws.Cells(Rows.Count, 2) _
.End(xlUp).Offset(1, 0).Row
'Copy The Data To The Database
ws.Cells(irow, 1).Value = Me.TextBox1.Value
ws.Cells(irow, 2).Value = Me.TextBox2.Value
ws.Cells(irow, 2).Select
Me.TextBox1 = ""
Me.TextBox2 = ""
Me.TextBox1.SetFocus
Else
MsgBox "no product", vbCritical
End If
End Sub
ปกติแล้วการ Load UserForm ที่มีการเขียนอย่างซับซ้อนโดยมี ComBobox, ListBox จำนวนมากที่จะต้อง Add ค่าต่าง ๆ เพื่อให้ User เลือกใช้ หากต้องทำการ Load, Unload ซ้ำ ๆ จะทำให้โปรแกรมทำงานช้า จึงควรหลีกเลี่ยงที่จะทำเช่นนั้น ควรโหลดขึ้นมาครั้งเดียว เมื่อไม่ใช้แล้วค่อยปิดไป
แต่สำหรับ UserForm ที่ทำมานี้ไม่ได้ซับซ้อน จะใช้ Code เดิมก็ไม่มีปัญหาใดครับ