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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
hinokia7210
Member
Posts: 34 Joined: Wed Aug 15, 2012 8:40 am
#1
Post
by hinokia7210 » Sat Aug 18, 2012 7:12 pm
ลองเขียนโค้ดแล้วค่ะ ลองก๊อบจากกระทู้ด้านล่าง ที่คุณ bank ให้มาเป็นตัวอย่าง และลองเอามาประยุกต์ใช้ดูแล้ว
ก็ไม่ค่อยเข้าใจ ลองทำแล้ว มันออกให้ค่ะ แต่มันโดดๆ ไม่เรียงตั้งแต่บรรทัดแรก อยากให้ช่วยอธิบายคำสั่ง
แต่ละบรรทัดได้มั้ยคะ คงง่ายกว่าไปหาซื้อหนังสือมาอ่าน (ตอนนี้อยู่แนวหุบเขาค่ะ) หรือ search แบบจับต้นชนปลายไม่ถูก
โค้ดของคุณ bank ที่เคยให้ไว้
Private Sub CommandButton1_Click()
If Me.TextBox1.Value <> "" Then
Dim irow As Long
Dim ws As Worksheet
Set ws = Worksheets("Data")
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, 8).Value = Me.TextBox2.Value
Unload Me
UserForm1.Show
Else
MsgBox "¡ÃسÒÃкت×è͹Ó˹éÒ¡è͹¤ÃѺ", vbCritical
End If
End Sub
และแนนก็ลองปรับเปลี่ยนนิดหน่อย ขั้นแล้วแต่ปัญหาอยู่ที่ภาพค่ะ
แต่ว่ามันไม่เรียงลำดับกันจากด้านบนลงมา ต้องแก้ที่ตรงไหนคะ รบกวนช่วยอธิบาย
โค้ดแต่ละบรรทัดให้ปรับใช้ได้มั้ยคะ ถ้าอยากจะเพิ่ง box ขึ้นมา
2. เวลาเข้าใช้กับวันที่ สามารถปรับแก้ไขให้ไม่เปลี่ยนทุกบรรทัดได้มั้ยคะ จริงๆ มันก็น่าจะแค่ cell ใคร cell มัน
3. คุณ bank เคยเห็นตัวอย่างตัวอยาง list box ในนี้มั้ยคะ ถ้าเคยเห็น รบกวนแปะลิงค์ให้แนนทีค่ะ
ตั้งใจอยากจะลองทำ เลือกเวลาเพิ่มเข้าไปใน text box ดูค่ะ
ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
hinokia7210
Member
Posts: 34 Joined: Wed Aug 15, 2012 8:40 am
#2
Post
by hinokia7210 » Sat Aug 18, 2012 7:16 pm
อ่อ.. ลืมอีกข้อค่ะ ตอนแรกตั้งค่าให้ใส่รหัสประจำตัว แล้วสามารถดุง ชื่อ นามสกุล เพศ ระดับชั้นมาได้หมด
แต่พอเพิ่ม text box เข้าไป ขึ้นเฉพาะแค่เวลาค่ะ ส่วนที่เหลือไม่ขึ้นเลย ต้องปรับแก้ตรงไหนเพิ่มเติมคะ
ขอบคุณค่ะ
yoguzaa
Member
Posts: 87 Joined: Mon Jan 09, 2012 4:48 pm
#3
Post
by yoguzaa » Sat Aug 18, 2012 9:18 pm
ที่มันกระโดดข้ามบรรทัด เป็นเพราะ ที่เซลล์ B7 ถึง B11 ไม่ใช่เซลล์ว่าง
ด้วยคำสั่ง
Code: Select all
'Find first empty row in database
irow = ws.Cells(Rows.Count, 2) _
.End(xlUp).Offset(1, 0).Row
นั้นให้หาแถวว่างจากเซลล์โดยใช้เซลล์อ้างอิงในคอลัมภ์ที่2
เมื่อตรวจสอบแล้วพบว่าในคอลัมภ์ที่2 ซึ่งก็คือ คอลัมภ์ B ในแถวที่ 7 ถึง 11 มีการบันทึกสูตรไว้
VBA ถือว่าเป็นเซลล์ที่ไม่ว่างครับ ลองลบ ข้อมูลในเซลล์ที่ว่า นั่น ออก แล้วบันทึกข้อมูลใหม่ดูนะครับ
ลองตรวจสอบชื่อของ userform ให้แน่ชัดด้วยนะครับ เหมือนมันมีการปรับเปลี่ยน แก้ไขให้ชื่อตรงกันด้วยครับ
เพื่อไม่เกิด error ในคำสั่งอื่นๆ
ใช้คำว่า"ไม่รู้"เพื่อที่จะได้"รู้"
ไม่ใช่ใช้เพื่อ"ปฏิเสธความรับผิดชอบ"
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#4
Post
by bank9597 » Sat Aug 18, 2012 9:51 pm
yoguzaa wrote: ที่มันกระโดดข้ามบรรทัด เป็นเพราะ ที่เซลล์ B7 ถึง B11 ไม่ใช่เซลล์ว่าง
ด้วยคำสั่ง
Code: Select all
'Find first empty row in database
irow = ws.Cells(Rows.Count, 2) _
.End(xlUp).Offset(1, 0).Row
นั้นให้หาแถวว่างจากเซลล์โดยใช้เซลล์อ้างอิงในคอลัมภ์ที่2
เมื่อตรวจสอบแล้วพบว่าในคอลัมภ์ที่2 ซึ่งก็คือ คอลัมภ์ B ในแถวที่ 7 ถึง 11 มีการบันทึกสูตรไว้
VBA ถือว่าเป็นเซลล์ที่ไม่ว่างครับ ลองลบ ข้อมูลในเซลล์ที่ว่า นั่น ออก แล้วบันทึกข้อมูลใหม่ดูนะครับ
ลองตรวจสอบชื่อของ userform ให้แน่ชัดด้วยนะครับ เหมือนมันมีการปรับเปลี่ยน แก้ไขให้ชื่อตรงกันด้วยครับ
เพื่อไม่เกิด error ในคำสั่งอื่นๆ
ถูกต้องแล้วครับ ที่บรรทัดดังกล่าว มีสูตรอยู่จึงไม่เท่ากับเซลล์ว่าง การสั่งบันทึกข้อมูลของโค๊ดจึงต้องวางในเซลล์ล่างสุดครับ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#5
Post
by bank9597 » Sat Aug 18, 2012 10:13 pm
ลองเอามาประยุกต์ใช้ดูแล้ว
ก็ไม่ค่อยเข้าใจ ลองทำแล้ว มันออกให้ค่ะ แต่มันโดดๆ ไม่เรียงตั้งแต่บรรทัดแรก อยากให้ช่วยอธิบายคำสั่ง
แต่ละบรรทัดได้มั้ยคะ คงง่ายกว่าไปหาซื้อหนังสือมาอ่าน (ตอนนี้อยู่แนวหุบเขาค่ะ) หรือ search แบบจับต้นชนปลายไม่ถูก
เป็นเรื่องธรรมดาครับ แม้แต่ผมเองก็ไม่ได้เข้าใจทั้งหมด แค่ใช้งานได้บ้างเท่านั้นเองครับ เราต้องใช้เวลาในการศึกษามันและเอาจริงเอาจังครับกว่าจะเข้าใจและนำมาใช้งานได้
3. คุณ bank เคยเห็นตัวอย่างตัวอยาง list box ในนี้มั้ยคะ ถ้าเคยเห็น รบกวนแปะลิงค์ให้แนนทีค่ะ
ตั้งใจอยากจะลองทำ เลือกเวลาเพิ่มเข้าไปใน text box ดูค่ะ
ที่คุณเคยทำมาก่อนหน้านี้ เค้าเรียกว่า Combobox ครับ ส่วน ListBox กด็จะเป็นอีกประเภทหนึ่ง ในกรณีของคุณ hinokia7210 ผมเห็นงานแล้ว ก็มองเห็นปัญหาในอนาคตอย่างแน่นอน หากเล่นบันทึกข้อมูลไปบางส่วน แล้วใช้สูตรดึงข้อมูลมาแสดงต่ออีกทีหนึ่ง เห็นจะไม่เหมาะครับ เพราะฐานข้อมูลไม่ควรจะมีสูตรใดๆ
ผมเลยทดลองทำฟอร์มการใช้งานมาให้ดูใหม่ อยากให้ลองไปศึกษาดูครับ
ปล. ในตัวอย่างมีเรื่อง RangeName เข้ามาเกี่ยวข้องด้วย ควรศึกษาด้วยครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
hinokia7210
Member
Posts: 34 Joined: Wed Aug 15, 2012 8:40 am
#6
Post
by hinokia7210 » Sun Aug 19, 2012 8:50 am
bank9597 wrote: ลองเอามาประยุกต์ใช้ดูแล้ว
ก็ไม่ค่อยเข้าใจ ลองทำแล้ว มันออกให้ค่ะ แต่มันโดดๆ ไม่เรียงตั้งแต่บรรทัดแรก อยากให้ช่วยอธิบายคำสั่ง
แต่ละบรรทัดได้มั้ยคะ คงง่ายกว่าไปหาซื้อหนังสือมาอ่าน (ตอนนี้อยู่แนวหุบเขาค่ะ) หรือ search แบบจับต้นชนปลายไม่ถูก
เป็นเรื่องธรรมดาครับ แม้แต่ผมเองก็ไม่ได้เข้าใจทั้งหมด แค่ใช้งานได้บ้างเท่านั้นเองครับ เราต้องใช้เวลาในการศึกษามันและเอาจริงเอาจังครับกว่าจะเข้าใจและนำมาใช้งานได้
3. คุณ bank เคยเห็นตัวอย่างตัวอยาง list box ในนี้มั้ยคะ ถ้าเคยเห็น รบกวนแปะลิงค์ให้แนนทีค่ะ
ตั้งใจอยากจะลองทำ เลือกเวลาเพิ่มเข้าไปใน text box ดูค่ะ
ที่คุณเคยทำมาก่อนหน้านี้ เค้าเรียกว่า Combobox ครับ ส่วน ListBox กด็จะเป็นอีกประเภทหนึ่ง ในกรณีของคุณ hinokia7210 ผมเห็นงานแล้ว ก็มองเห็นปัญหาในอนาคตอย่างแน่นอน หากเล่นบันทึกข้อมูลไปบางส่วน แล้วใช้สูตรดึงข้อมูลมาแสดงต่ออีกทีหนึ่ง เห็นจะไม่เหมาะครับ เพราะฐานข้อมูลไม่ควรจะมีสูตรใดๆ
ผมเลยทดลองทำฟอร์มการใช้งานมาให้ดูใหม่ อยากให้ลองไปศึกษาดูครับ
ปล. ในตัวอย่างมีเรื่อง RangeName เข้ามาเกี่ยวข้องด้วย ควรศึกษาด้วยครับ
โอ้.. สุดยอดเลยค่ะ ขอบคุณ คุณ Bank มากๆ เดี๋ยวขอตัวไปศึกษาที่คุณแนะนำเพิ่มเติมไว้ให้ค่ะ
แล้วก็จะปรับแต่งใส่รูปภาพหน้าตา แล้วยังไงจะเอามาให้ดูนะคะ ตั้งใจว่าจะเอารูป banner
ไว้ด้านบนสุด ก่อนตารางที่ใส่ชื่อ แล้วก็เอาปุ่มแสดงฟอร์ม มาไว้ตรงกลางด้านบน และ lock
ให้เลื่อนได้เฉพาะข้อมูลที่กรอกลงไปค่ะ ยังไงแล้วจะเอามาให้ดู และติชม นะคะ ช่วยแนะนำด้วยนะคะ
ขอบคุณค่ะ
yoguzaa
Member
Posts: 87 Joined: Mon Jan 09, 2012 4:48 pm
#7
Post
by yoguzaa » Sun Aug 19, 2012 12:31 pm
ปรี๊ด....ด...ด
กรรมการยกธงล้ำหน้าครับ
ตอนนี้รูสึกว่า คุณ แบงค์ จะล้ำหน้าเพื่อนๆสมาชิกทุกท่าน
ทั้งเรื่องความรู้ น้ำใจ และการเอื้อเฟื้อแบ่งบัน ช่วยเหลือผู้อื่น
ชื่นชมในตัวคุณ หาได้ยากครับในสังคมบ้านเรา
น่าจะได้ ID:Assistant ซะแล้ว
ใช่ไหมครับ อาจารย์
ลืม ขอบคุณครับ
ใช้คำว่า"ไม่รู้"เพื่อที่จะได้"รู้"
ไม่ใช่ใช้เพื่อ"ปฏิเสธความรับผิดชอบ"
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#8
Post
by bank9597 » Sun Aug 19, 2012 12:52 pm
yoguzaa wrote: ปรี๊ด....ด...ด
กรรมการยกธงล้ำหน้าครับ
ตอนนี้รูสึกว่า คุณ แบงค์ จะล้ำหน้าเพื่อนๆสมาชิกทุกท่าน
ทั้งเรื่องความรู้ น้ำใจ และการเอื้อเฟื้อแบ่งบัน ช่วยเหลือผู้อื่น
ชื่นชมในตัวคุณ หาได้ยากครับในสังคมบ้านเรา
น่าจะได้ ID:Assistant ซะแล้ว
ใช่ไหมครับ อาจารย์
ลืม ขอบคุณครับ
ผมศึกษาจากอาจารย์มาอีกทีหนึ่งครับ Credit By คนควน และ snasui.com ครับ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
snasui
Site Admin
Posts: 31253 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#9
Post
by snasui » Sun Aug 19, 2012 1:43 pm
เห็นด้วยครับ คุณ bank9597 เป็นผู้มีความมุ่งมั่น มีความตั้งใจสูง สามารถเป็นตัวอย่างแก่เพื่อนสมาชิกในเรื่องนี้ได้เป็นอย่างดีครับ