Page 1 of 1

import text แล้วให้แยกลงในแต่ละคอลั่ม ในรูปแบบที่ต่างกัน ยังไงครับ

Posted: Thu Mar 24, 2016 3:20 pm
by spriggan
ผมมีข้อมุลที่ export มาจากเครื่องแสกนนิ้วมือ
ตามที่แนบมานี้ครับ
ที่นี้ต้องการ import ลง excel โดยใช้ vba
โดยให้แยกเป็น 4 คอลัม คือ 1.รหัสพนักงาน 2.วันที่ (dd/mm/yyy) 3.เวลา (hh:mm) 4. in-out ครับ
เพราะตอนนี้ลองทำแบบกด manual มันใช้เวลามากพอสมควรเลยครับ

ตัวอย่าง ไฟล์ดิบนะครับ

5201548,06012016,0001I
5404086,06012016,0002O
4900686,06012016,0007O

Re: import text แล้วให้แยกลงในแต่ละคอลั่ม ในรูปแบบที่ต่างกัน ยังไงครับ

Posted: Thu Mar 24, 2016 4:45 pm
by DhitiBank
หากถามเรื่อง VBA ควรโพสต์ Code ประกอบคำถามด้วยครับและสำหรับกรณีนี้ควรแนบไฟล์ txt ตัวอย่างมาด้วย เพื่ออาจารย์หรือเพื่อนๆ จะสะดวกเอาไปทดสอบครับ

ผมไม่ได้มาตอบ VBA แต่ลองทำด้วยสูตรมาให้เป็นทางเลือกครับ (ผมเคยใช้อยู่)

1. สร้างชีทสำหรับคัดลอกข้อมูลจาก text file มาวาง สมมติชื่อชีท "Text" และสมมติว่าเอาข้อมูลมาวางตั้งแต่เซลล์ A1 ไล่ลงไปเรื่อยๆ ในคอลัมน์ A

2. อีกชีทหนึ่งสำหรับใส่สูตรเพื่อดึงและตัดข้อมูล
A2
=IF(Text!A1="","",--MID(SUBSTITUTE(","&Text!$A1,",",REPT(" ",20)),COLUMNS($A2:A2)*20,20))
Enter

B2
=IF(Text!A1="","",--TEXT(TRIM(MID(SUBSTITUTE(","&Text!$A1,",",REPT(" ",20)),COLUMNS($A2:B2)*20,20)),"00\/00\/0000"))
Enter

C2
=IF(Text!A1="","",--TEXT(LEFT(TRIM(MID(SUBSTITUTE(","&Text!$A1,",",REPT(" ",20)),COLUMNS($A2:C2)*20,20)),4),"00\:00"))
Enter

D2
=RIGHT(Text!A1,1)
Enter

ฺจัดรูปแบบตัวเลขใน B2 และ C2 ให้เป็นวันที่และเวลา ตามลำดับ จากนั้นคัดลอก A2:D2 ลงล่างครับ
เวลาใช้งานก็ให้ลบข้อมูลในชีท Text ออก (แต่อย่าลบด้วยการ เลือกทั้งหมด --> คลิกขวา --> delete นะครับ เพราะจะทำให้เกิดการเลื่อนเซลล์ อาจเกิดข้อผิดพลาด #Ref กับสูตรได้) แล้วก็คัดลอกข้อมูลจาก txt file เอามาวางที่เซลล์ A1 ครับ

Re: import text แล้วให้แยกลงในแต่ละคอลั่ม ในรูปแบบที่ต่างกัน ยังไงครับ

Posted: Fri Mar 25, 2016 10:23 am
by spriggan
ขอบคุณครับ เดี๋ยวผมลองก่อนนะครับ