ดึงข้อมูลจากFile.csv ด้วย VBA
Posted: Sat Jul 11, 2020 1:18 pm
ช่วยแนะนำการปรับ VBA code ดึงข้อมูลจาก File ข้อมูล .CSV ให้ผมกฃหน่อยครับ
จากปัญหาที่ผมพบจากการดึงข้อมูลมาทุกข้อความที่มีเครื่องหมาย , จะโดนแยกออกเป็น 2 Column (เช่นข้อมูล Cost)
ซึ่งก็เข้าใจว่าเกิดจากคำสั่ง Split แต่ก็ไม่รู้จะปรับ Code ตรงจุดนี้อย่างไรและ File.csv บางFile เมื่อ VBA ดึงข้อมูลมาก็จะมีเครื่อง " " คั่นข้อความอยู่ทุกๆ Cells ข้อมูลครับ
จากปัญหาที่ผมพบจากการดึงข้อมูลมาทุกข้อความที่มีเครื่องหมาย , จะโดนแยกออกเป็น 2 Column (เช่นข้อมูล Cost)
ซึ่งก็เข้าใจว่าเกิดจากคำสั่ง Split แต่ก็ไม่รู้จะปรับ Code ตรงจุดนี้อย่างไรและ File.csv บางFile เมื่อ VBA ดึงข้อมูลมาก็จะมีเครื่อง " " คั่นข้อความอยู่ทุกๆ Cells ข้อมูลครับ
Code: Select all
Sub Input_CSV()
Dim fd As Office.FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Clear
.Title = "Selec a CSV File"
.Filters.Add "CSV", "*.csv", 1
Dim sFile As String
If .Show = True Then
sFile = .SelectedItems(1)
End If
End With
If sFile <> "" Then
Open sFile For Input As #1
row_number = 1
Do Until EOF(1)
Line Input #1, LineFromFile
LineItems = Split(LineFromFile, ",")
LineItem = LineFromFile
Application.Range("rRange").Cells(row_number, 1).Value = LineItems(0)
Application.Range("rRange").Cells(row_number, 2).Value = LineItems(1)
Application.Range("rRange").Cells(row_number, 3).Value = LineItems(2)
Application.Range("rRange").Cells(row_number, 4).Value = LineItems(4)
Application.Range("rRange").Cells(row_number, 5).Value = LineItems(26)
Application.Range("rRange").Cells(row_number, 6).Value = LineItems(27)
Application.Range("rRange").Cells(row_number, 7).Value = LineItems(28)
Application.Range("rRange").Cells(row_number, 8).Value = LineItems(32)
Application.Range("rRange").Cells(row_number, 9).Value = LineItems(33)
Application.Range("rRange").Cells(row_number, 10).Value = LineItems(34)
row_number = row_number + 1
Loop
Close #1
End If
End Sub