นำข้อมูลจาก Excel ลง TextFile กันดีกว่า
Posted: Wed Apr 04, 2012 7:39 pm
บางคนคิดว่า จะเอาไปใช้อะไร เชื่อผม สักวันก็ได้ใช้ ผมเองก็ได้เจ้าตัวนี้ละถึงรอดตัวไป
ที่ผมเอาไปใช้ มีปัญหาว่า User ต้องการแปลงข้อมูลใน Textfile ครับแต่ว่าข้อมูลต้นฉบับมันผิด แล้วผิดหลายสิบไฟล์ถ้าแก้มมือ แก้กันแย่เลย เราก็เลยใช้ตัวนี้มาช่วยโดยการดึงข้อมูลจาก Textfile มาในรูปแบบของ Query ครับ แล้วก็ใช้สูตร Excel มาช่วยแปลงข้อมูลให้ถูกต้อง จากนั้นก็ กดปุ่มเอาข้อมูลไปเก็บไว้ใน TextFile สะดวกและรวดเร็วมาครับ พออ่านมาถึงตอนนี้ พอมีไอเดียกันแ้ล้วใช่ไหมครับ งั้นไปลองกันเลย
ที่ผมเอาไปใช้ มีปัญหาว่า User ต้องการแปลงข้อมูลใน Textfile ครับแต่ว่าข้อมูลต้นฉบับมันผิด แล้วผิดหลายสิบไฟล์ถ้าแก้มมือ แก้กันแย่เลย เราก็เลยใช้ตัวนี้มาช่วยโดยการดึงข้อมูลจาก Textfile มาในรูปแบบของ Query ครับ แล้วก็ใช้สูตร Excel มาช่วยแปลงข้อมูลให้ถูกต้อง จากนั้นก็ กดปุ่มเอาข้อมูลไปเก็บไว้ใน TextFile สะดวกและรวดเร็วมาครับ พออ่านมาถึงตอนนี้ พอมีไอเดียกันแ้ล้วใช่ไหมครับ งั้นไปลองกันเลย
Code: Select all
' ก่อนใช้งานต้องไปติ๊กถูกที่ Microsoft sctipting runtime กับ Microsoft scriplet libraly ก่อนนะ (อันนี้สำคัญนะ)
Application.CutCopyMode = False ' อันนี้เป็นการปิด events บนจอ
Dim c As New FileSystemObject
On Error GoTo x
c.CreateFolder ("C:\Documents and Settings\All Users\Desktop\TextFile") ' สร้าง Folder ไว้หน้าจอ ถ้ามีแล้วข้ามไปครับ
x:
Myname = InputBox("ระบุชื่อ TextFile ") 'ตั้งอะไรก็ได้ครับ
Set fs = CreateObject("Scripting.FileSystemObject") ' set object กันก่อนครับ
Set a = fs.CreateTextFile("C:\Documents and Settings\All Users\Desktop\TextFile\" & Myname & ".txt", True)
Range("J2").Select
Rem ตรงนี้ ถ้าข้อมูลมีมากกว่า 1 คอลัมน์ก็ใช้ For เพิ่มเข้าไปนะครับ โดย Loop เท่ากับจะนวนคอลัมน์
Do While ActiveCell.Value <> ""
a.WriteLine ActiveCell.Text
ActiveCell.Offset(1, 0).Select
Loop
a.Close
MsgBox "เรียบร้อยแล้ว", vbOKOnly