Page 1 of 1

ค้นหาข้อมูลจากช่วงวันที่ (VBA)

Posted: Fri Apr 01, 2022 3:21 pm
by Borfor
ใน userform6 ต้องการที่จะเลือกช่วงวันที่แล้ว copy ข้อมูลในช่วงวันที่นั้นไปวางอีกหน้าหนึ่ง(sheet 7) และแสดงใน List Box แต่ปัญหาคือเมื่อเป็นวันที่ 1-12 ของทุกเดือนจะไม่สามรถค้นหาข้อมูลได้ (ไม่มีข้อมูลแสดงขึ้นมา) รวมถึงวันที่ 13 เป็นต้นไปก็แสดงข้อมูลไม่ครบทุกตัวค่ะ ไม่แน่ใจว่าเกิดจากอะไร รบกวนอาจารย์ช่วยดูหน่อยค่ะ ขอบคุณค่ะ

Re: ค้นหาข้อมูลจากช่วงวันที่ (VBA)

Posted: Fri Apr 01, 2022 5:40 pm
by snasui
:D Data Type คนละแบบ เทียบกันไม่ได้ ดังภาพด้านล่างครับ

ปกติใน Control ต่าง ๆ จะเป็น Text หากจะนำไปเทียบกับ Number เทียบกับ Date (ซึ่งก็คือ Number เช่นกัน) ก็ต้องแปลงเสียก่อน หรือจะแปลงฟาก Number มาเป็น Text ก็แล้วแต่สะดวก

ในการทำงานกับวันที่ไม่ใช่เรื่องง่ายนัก ค่าในเซลล์ควรใช้ Sheets(3).Cells(i, 1).Value2 เพื่อนำค่าแบบไม่รวม Format ซึ่งค่าวันที่ของวันนี้คือ 44652 หากจะเทียบกับ TextBox ก็ต้อง Format เลขนี้ให้กลายเป็นวันที่แบบ Text หรือ แปลงค่าใน Text ให้กับมาเป็นวันที่นี้แบบใดแบบหนึ่งครับ

การทดสอบค่าใด ๆ ในโปรแกรมควรฝึกใช้ Immediate Windows (เปิดด้วย Ctrl+G) ให้คล่อง จะได้ตรวจสอบได้เบื้องต้นว่าเกิดการผิดพลาดตรงไหน อย่างไร