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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#1
Post
by bank9597 » Tue Jul 24, 2012 1:12 am
รบกวนอาจารย์และเพื่อนหน่อยครับ
พอดีว่าผมมีฟอร์มไว้บันทึกข้อมูลลงเวิร์คชีท โดยในฟอร์มจะมี TextBox1 และ TextBox2 ทั้ง 2 ออพเจ็คนี้ จะทำงานอัตโนมัติเวลาเปิดฟอร์มขึ้นมา
ปัญหาคือ ผมไม่สามารถบันทึกข้อมูลติดต่อกันได้ ต้องบันทึกทีล่ะ 1 ชุดข้อมูลเท่านั้นแล้วปิดฟอร์ม แล้วเปิดใหม่ หากบันทึกแบบต่อเนื่องเป็นครั้งที่ 2 ข้อมูลใน TextBox1 และ TextBox2 จะไม่แสดงครับ
ทั้งนี้จึงได้ทราบวิธีกา Refresh Form หลังการบันทึกข้อมูลเสร็จครับ ว่ามีวิธีการใดทำได้บ้าง
ถามแค่ข้อเดียวก่อนครับ
โค๊ดอยู่ใน UserForm ชื่อ Add ครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
niwat2811
Bronze
Posts: 350 Joined: Thu Jan 06, 2011 12:51 pm
Excel Ver: 2016
#2
Post
by niwat2811 » Tue Jul 24, 2012 2:09 am
ลองเพิ่ม Call UserForm_Initialize ครับ ไม่ทราบว่าตรงกับที่ต้องการหรือเปล่า
Private Sub CommandButton1_Click()
Dim irow As Long
Dim ws As Worksheet
Set ws = Worksheets("Data")
'find first empty row in database
irow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row
'Check for Id
If Trim(Me.TextBox1.Value) = "" Then
Me.TextBox1.SetFocus
MsgBox "¤Ø³äÁèä´éÃкØÇѹ·Õè"
Exit Sub
End If
'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, 3).Value = Me.TextBox3.Value
'Clear the data
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Call UserForm_Initialize
End Sub
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#3
Post
by bank9597 » Tue Jul 24, 2012 9:09 am
niwat2811 wrote: ลองเพิ่ม Call UserForm_Initialize ครับ ไม่ทราบว่าตรงกับที่ต้องการหรือเปล่า
Private Sub CommandButton1_Click()
Dim irow As Long
Dim ws As Worksheet
Set ws = Worksheets("Data")
'find first empty row in database
irow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row
'Check for Id
If Trim(Me.TextBox1.Value) = "" Then
Me.TextBox1.SetFocus
MsgBox "¤Ø³äÁèä´éÃкØÇѹ·Õè"
Exit Sub
End If
'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, 3).Value = Me.TextBox3.Value
'Clear the data
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Call UserForm_Initialize
End Sub
ขอบคุณมากครับ ตอนผมเองรันไม่ผ่านเลย เพราะผมใช้ Call Add_Initialize
ขอบคุณอีกครั้งครับ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#4
Post
by bank9597 » Tue Jul 24, 2012 9:15 am
ผมขอถามขอ 2 ต่อน่ะครับ
พอดีว่าใน TextBox1 เป็นช่องไว้ใส่วันที่ ผมบังคับให้มัน Run วันที่มาเอง เพราะหากคีย์
ด้วยมือ ข้อมูลที่ส่งไปบันทึกมันจะไม่ได้ฟอร์แมตของวันที่ครับ
ต้องคีย์เป็น mm/dd/yyyy ครับ แต่หากคีย์ dd/mm/yyyy ก็จะได้เป็นฟอร์แมต General
ทั้งนี้ผมเลยให้ TextBox มันรันข้อมูลเองอัตโนมัติ แล้วให้แก้วันที่เอาเอง พอสั่งบันทึกไปมันจะได้บ้างและไม่ได้บ้าง
รบกวนแนะนำหน่อยครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
snasui
Site Admin
Posts: 31253 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#5
Post
by snasui » Tue Jul 24, 2012 5:44 pm
ผมทดสอบแล้วสามารถบันทึกได้ครับ