Page 1 of 1
การ import text ไฟล์ลงตาราง
Posted: Thu Dec 06, 2012 5:34 pm
by tstc79tt
ผมมีไฟล์ text อยู่แล้วพอ import ไฟล์ ลงตารางมันครั้งแรกไม่เป็นไรครับ แล้วก็ พอกด อีกครั้งแทนที่มันจะ ทับอันเก่าไป มันกลับดันตารางเก่าไปข้างๆ แทน
ใช้ cell.clear ใน VBA ไม่ได้ด้วยครับ เพราะมันจะทำให้ทุกอย่างใน sheet นั้นหายไป
มีไฟล์ทดลองด้านล่างครับ
(ผมตั้งกระทู้ใหม่เพราะคิดว่ามันเรื่องใหม่น่ะครับ)
Re: การ import text ไฟล์ลงตาราง
Posted: Thu Dec 06, 2012 5:48 pm
by snasui

ลองปรับ Code เป็นตามด้านล่างครับ
Code: Select all
Sub ImportTextFile()
Dim rPaht As String
Dim rFileName As String
rPaht = Sheet1.Range("C9")
rFileName = Sheet1.Range("C10")
Range("G8").CurrentRegion.Offset(1, 0).Clear
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & rPaht & "\" & rFileName & ".txt", Destination:= _
Range("$g$9"))
.Name = Sheet1.Range("C10").Value
.TextFilePlatform = 874
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileOtherDelimiter = ":"
.Refresh BackgroundQuery:=False
End With
Sheet1.Range("C9") = rPaht
Sheet1.Range("C10") = rFileName
End Sub
Re: การ import text ไฟล์ลงตาราง
Posted: Fri Dec 07, 2012 9:09 am
by tstc79tt
มันลบตาราง และก็ผลคำนวนฟั่งชั่นทางด้านซ้าย ออกหมดเลยครับ แต่ข้อมูลอยู่กับที่ไม่ดันแล้วครับ
Re: การ import text ไฟล์ลงตาราง
Posted: Fri Dec 07, 2012 9:35 am
by snasui
tstc79tt wrote:มันลบตาราง และผลคำนวนฟั่งชั่นทางด้านซ้าย ออกหมดเลยครับ แต่ข้อมูลอยู่กับที่ไม่ดันแล้วครับ
ผลการคำนวณด้านซ้ายที่ว่านั้นอยู่ในช่วงเซลล์ใด ตัวอย่างที่แนบมาเป็นตัวแทนของไฟล์จริงหรือไม่ ช่วยระบุช่วงข้อมูลที่ต้องการลบให้ชัดเจนครับ
Re: การ import text ไฟล์ลงตาราง
Posted: Fri Dec 07, 2012 10:17 am
by tstc79tt
นี่ครับ หากลงกดimport ไฟล์ ดูมันจะลบตารางทิ้งเลยอ่ะครับ
Re: การ import text ไฟล์ลงตาราง
Posted: Fri Dec 07, 2012 10:24 am
by snasui

Code ที่เขียนไปนั้นเป็นการ Clear ทุกอย่าง จึงไม่แปลกที่ตารางจะถูกลบทิ้งครับ ให้ตอบสิ่งที่ผมถามไปครับ
tstc79tt wrote:ผลการคำนวณด้านซ้ายที่ว่านั้นอยู่ในช่วงเซลล์ใด ตัวอย่างที่แนบมาเป็นตัวแทนของไฟล์จริงหรือไม่ ช่วยระบุช่วงข้อมูลที่ต้องการลบให้ชัดเจนครับ
Re: การ import text ไฟล์ลงตาราง
Posted: Fri Dec 07, 2012 10:53 am
by tstc79tt
ส่วนช่วงที่ต้องการ ในการimport และ ให้ลบอยู่ ในช่วงคอลัม G9 H9 I9 ลงมาเรื่อยๆ
ช่วงที่ฟังชั่นอยู่และไม่ต้องการให้หายไปคือในช่วงคอลัม J9 ลงมาเรื่อยๆครับ
ขอโทษครับ
ไม่ใช่ไฟล์จริงครับ ผมอยากรู้แล้วเอาไปดูๆศึกษาน่ะครับ
Re: การ import text ไฟล์ลงตาราง
Posted: Fri Dec 07, 2012 11:58 am
by snasui

ลองปรับ code เป็นตามด้านล่างครับ
Code: Select all
Sub ImportTextFile()
Dim rPaht As String
Dim rFileName As String
rPaht = Sheet1.Range("C9")
rFileName = Sheet1.Range("C10")
Range("G8").CurrentRegion.Offset(1, 0).Resize(, 3).Clear
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & rPaht & "\" & rFileName & ".txt", Destination:= _
Range("$g$9"))
.Name = Sheet1.Range("C10").Value
.TextFilePlatform = 874
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileOtherDelimiter = ":"
.Refresh BackgroundQuery:=False
End With
Sheet1.Range("C9") = rPaht
Sheet1.Range("C10") = rFileName
End Sub
Re: การ import text ไฟล์ลงตาราง
Posted: Fri Dec 07, 2012 2:37 pm
by tstc79tt
ขอบคุณครับ
ถามเพิ่มน่ะครับ เช่น สมมุติว่า มีหลาย ชีต น่ะครับ ต้องการรัน โคดนี้ จาก Sheet1 แล้วนำผลไปลงที่ Sheet3 ได้ไหมครับ
Re: การ import text ไฟล์ลงตาราง
Posted: Fri Dec 07, 2012 2:45 pm
by snasui

สามารถทำได้ครับ
Re: การ import text ไฟล์ลงตาราง
Posted: Fri Dec 07, 2012 3:54 pm
by tstc79tt
ผมลอง ใส่ Sheet3.Range("G8").CurrentRegion.Offset(1, 0).Resize(, 3).Clear
ลงไปบรรทัดแต่มันก็ฟ้องว่า มันสร้างตารางลงผิดที่
และก็อีกอันคือ
ย้ายโคดไป sheet3
ผมลอง assign button ให้เรียก ฟังชั่นจาก sheet 3 มาเลย ก็ไม่ได้ครับ
ผมต้องแก้ตรงไหน หรือว่า มีโคดไหนต้องใส่เพิ่มหรือป่าว ขอแนะนำครับ
Re: การ import text ไฟล์ลงตาราง
Posted: Fri Dec 07, 2012 4:11 pm
by snasui

แนบไฟล์พร้อม Code ที่ปรับเองแล้วมาด้วยครับ
Re: การ import text ไฟล์ลงตาราง
Posted: Fri Dec 07, 2012 5:21 pm
by tstc79tt
นี่ครับ ผม ใส่ปุ่มที่ดึงโคดมาจากแต่ละชีตแยกไว้ด้วย
Re: การ import text ไฟล์ลงตาราง
Posted: Fri Dec 07, 2012 7:16 pm
by snasui

กรณีดึงไป Sheet3 ลองปรับ Code เป็นตามด้านล่างครับ
Code: Select all
Sub ImportTextFile()
Dim rPaht As String
Dim rFileName As String
rPaht = Sheet1.Range("C9")
rFileName = Sheet1.Range("C10")
Sheet3.Range("G8").CurrentRegion.Offset(1, 0).Resize(, 3).Clear
With Sheet3.QueryTables.Add(Connection:= _
"TEXT;" & rPaht & "\" & rFileName & ".txt", Destination:=Sheet3.Range("$g$9"))
.Name = Sheet1.Range("C10").Value
.TextFilePlatform = 874
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileOtherDelimiter = ":"
.Refresh BackgroundQuery:=False
End With
' Sheet1.Range("C9") = rPaht
' Sheet1.Range("C10") = rFileName
End Sub