Page 1 of 1

Format Date จากไฟล์ .CSV (VB)

Posted: Mon Feb 24, 2020 1:36 pm
by Polly
สวัสดีค่ะ

รบกวนค่ะ สิ่งที่ต้องการ คือ ต้องการรูปแบบฟอร์แมตไฟล์ต้นทาง ก๊อปปี้มาวางให้เหมือนกับต้นฉบับค่ะ
อธิบาย: จากไฟล์ Coverage.csv คอลัมน์ AK:AL (ไฟล์ต้นทาง) เมื่อนำเข้ามาในไฟล์ report_formatDate.xlsm (ปลายทาง) ต้องการให้เป็นตาม Format ของต้นทาง คือ Date จากโค้ดด้านล่างเมื่อนำเข้ามาจะมีทั้ง Text และ Date ปนอยู่ค่ะ
หมายเหตุ: ไฟล์แนบถูกปรับเป็น.CSV ค่ะ เนื่องจากแนบไปไม่ได้ แต่ของต้นทางคือ .CSV ค่ะ

ขอบคุณล่วงหน้าด้วยค่ะ
[/Sub LoopThroughDirectory()

Sheet6.Cells.Clear

Worksheets("CV").Visible = True
Worksheets("CL").Visible = True

Dim MyFile As String
Dim erow
Dim Filepath As String
Filepath = "S:\Group Support\@Sale Support\Usa\B-Quick\Coverage file\"
MyFile = Dir(Filepath)
Do While Len(MyFile) > 0
If MyFile = "report_formatDate.xlsm" Then
Exit Sub
End If

Application.DisplayAlerts = False
Workbooks.Open (Filepath & MyFile)
Sheets("Coverage").Select
Range("A1", ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy

Windows("report_formatDate.xlsm").Activate

Sheets("CV").Select
Range("A1").Select
ActiveSheet.Paste

Windows(MyFile).Activate
ActiveWindow.Close
MyFile = Dir

Loop
Sheets("Control").Activate
End Sub
quote]

Re: Format Date จากไฟล์ .CSV (VB)

Posted: Mon Feb 24, 2020 7:11 pm
by snasui
:D ไฟล์ที่เป็น .csv ให้ Zip มาก่อนครับ

ส่วนการโพสต์ Code กรุณาอ่านตรงกฎการใช้บอร์ดด้านบนครับ :roll:

Re: Format Date จากไฟล์ .CSV (VB)

Posted: Tue Feb 25, 2020 9:09 am
by Polly
แก้ไขไฟล์มาใหม่ค่ะ
สิ่งที่ต้องการ คือ ต้องการรูปแบบฟอร์แมตไฟล์ต้นทาง ก๊อปปี้มาวางให้เหมือนกับต้นฉบับค่ะ

อธิบาย: จากไฟล์ Coverage.csv คอลัมน์ที่เป็นวันที่ต่างๆ เช่น คอลัมน์ AK:AL (ไฟล์ต้นทาง) เมื่อนำเข้ามาในไฟล์ report_formatDate.xlsm (ปลายทาง) ข้อมูลที่เป็นวันที่ จะมีทั้ง Text และ Date ปนอยู่ค่ะ ต้องการให้กลุ่มวันที่เป็นเหมือน Format จาก.CSV ค่ะ ขอบคุณค่ะ

Code: Select all

Sub LoopThroughDirectory()
    

Dim MyFile As String
Dim erow
Dim Filepath As String
Filepath = "C:\Users\usac\Desktop\Test\"
MyFile = Dir(Filepath)
Do While Len(MyFile) > 0
     If MyFile = "report_formatDate.xlsm" Then
     Exit Sub
     End If
     
     Application.DisplayAlerts = False
     Workbooks.Open (Filepath & MyFile)
     Sheets("Coverage").Select
     Range("A1", ActiveCell.SpecialCells(xlLastCell)).Select
     Selection.Copy

     Windows("report_formatDate.xlsm").Activate

     Sheets("CV").Select
     Range("A1").Activate
     ActiveSheet.Paste
     
     Windows(MyFile).Activate
     ActiveWindow.Close
     MyFile = Dir
     
Loop
Sheets("Control").Activate
End Sub

Re: Format Date จากไฟล์ .CSV (VB)

Posted: Tue Feb 25, 2020 7:25 pm
by snasui
:D ลองเปลี่ยนไปใช้การ Import แทนการเปิดแล้ว Copy ครับ

สำหรับการ Import (เข้าเมนู Data > From text) สามารถบันทึก Macro แล้วนำ Code มาปรับได้ครับ

Re: Format Date จากไฟล์ .CSV (VB)

Posted: Wed Feb 26, 2020 11:33 am
by Polly
ปรับโค้ดตามคำแนะนำของอาจารย์แล้วค่ะ ขอบคุณค่ะ