Page 1 of 1

RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 10:25 am
by kannaree
สวัสดีค่ะ อาจารย์
พอดีหนูอยากลองดาวน์โหลดโปรแกรม Import ข้อมูลจากหลาย ๆ ไฟล์ ลงใน Excel
จึงได้ทำการดาวน์โหลดโปรแกรม ตัวนี้มาลองทดสอบ

ปรากฏว่า ได้ทำตามขั้นตอนตามที่อาจารย์ได้บอก แต่ไม่สามารถทำได้ ไม่ทราบว่าเกิดจากอะไรคะ
Excel v.2010 ได้ Setting Marco แล้วค่ะ
Copy of ADO_ImpCloseFile_V2.xlsm
Error ที่เกิดขึ้น
1.png
2.png

ขอบคุณค่ะ

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 10:26 am
by kannaree
Setting Marco Excel version 2010
3.png

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 11:55 am
by snasui
:D อ่านที่ Liik นี้ครับ viewtopic.php?p=72898#p72898

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 11:58 am
by parakorn
เพราะประเภทของไฟล์ เป็น Text หรือเปล่าครับ
ลองไฟล์ที่นามสกุลเป็น Excel ดูก่อนครับ

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 12:03 pm
by kannaree
ลองดึงจากไฟล์ excel ก็ไม่ได้ค่ะ อาจารย์รบกวนสอบถามหน่อยคะ
1.png
2.png

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 1:40 pm
by logic
น่าจะแนบไฟล์มาด้วยจะได้ช่วยทดสอบครับ :|

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 1:46 pm
by kannaree
คือลองเขียน vba เพื่อตั้งจ๊อบ run แล้ว
แต่ไม่สะดวกเพราะ ต้องเปลี่ยน path ด้านใน จึงอยากทดลองใช้ไฟล์ของอาจารย์มากกว่าค่ะ

Code: Select all

Sub Button1_Click()
Set cell_to_paste_next_dataset = Cells(1, 1)
 Set active_workbook = ActiveWorkbook
 Set active_sheet = Sheet2
 Application.DisplayAlerts = False

 File_Path = "S:\Confirm_PO\Outstanding_2017\WW23\Complete_Upload_Auto_Mail"
 strName = Dir(File_Path & "\" & "*.xls")

 Do While strName <> vbNullString

 If active_workbook.Name <> strName And strName <> "" Then
 Workbooks.Open Filename:=File_Path & "\" & strName
 Set dataset_workbook = ActiveWorkbook
 Range(ActiveCell.SpecialCells(xlLastCell), Cells(1)).Copy
 active_sheet.Activate
 Cells(ActiveCell.SpecialCells(xlLastCell).Row, 1).Select
 ActiveSheet.Paste
 dataset_workbook.Close
 End If
 strName = Dir
 Loop
 Application.DisplayAlerts = True
End Sub


File ที่ Test แล้วทำไม่ได้ ลองเปลี่ยนเป็น .xls แล้วค่ะ
Copy of ADO_ImpCloseFile_V2.xlsm

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 2:04 pm
by logic
ไฟล์โปรแกรมไม่ต้องส่งมาก็ได้ เอาไฟล์ A1, B1 ที่เห็นในภาพแนบมาครับ :P

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 2:10 pm
by kannaree
ขอโทษทีค่ะ
ไฟล์ไม่มีข้อมูลอะไรซับซ้อนเลยค่ะ ต้องการเพียงแค่เอาข้อมูลจากไฟล์นั้นๆ มาต่อกัน

แนบมาด้านล่างแล้วค่ะ ขอบคุณมากค่ะ

ตัวอย่าง A1
A1.png

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 2:19 pm
by logic
เครื่องผมรันได้ ไม่พบ error ครับ :?

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 2:39 pm
by kannaree
แปลกจังค่ะ พอไปใส่ไว้ที download ก็ได้ผลลัพธ์เหมือนกัน แต่ไฟล์งานจริง ๆ อยู่ที่ไดร์ S
หรือติดที่ permission ค่ะเกี่ยวไหม งงมากค่ะ

comp.png

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 2:50 pm
by kannaree
ทดลองไฟล์ C1 ให้อีกไฟล์ได้ไหมค่ะ
C1.xlsx

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 3:03 pm
by kannaree
ลองสังเกตดูแล้ว ไฟล์ที่รวมไม่ได้น่าจะเกิดจาก การ Save นามสกุลไฟล์เป็น xls หรือป่าวค่ะ
2222.png
ขอบคุณค่ะ

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 3:15 pm
by kannaree
ขอถามเรื่อง VBA ใช้โค้ดตัวเองดีกว่าค่ะ งงมากเลย ต้องการจะเปลี่ยนโค้ดตรง VBA อย่างไร ให้เรียก path จาก A1
ได้คะ
a1.png
b1.png
ตัวอย่างโปรแกรม
POOutstandingWW23'17 - Copy.xlsm

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 3:18 pm
by kannaree
โมดูลเดิมกำหนด Path ไว้เลย อยากเปลี่ยนให้รีบค่ามา ต้องทำอย่างไรคะ
c1.png

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 3:22 pm
by logic
ค่าอยู่ที่ a1 ลองเขียนเป็น File_Path = Range("a1").Value ดูครับ

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 3:37 pm
by kannaree
ขอบคุณมากค่ะ

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 4:48 pm
by kannaree
ขอถามอีกคำถามค่ะ พอดีพึ่งพบข้อผิดพลาด จากโค้ด

Code: Select all

Sub Button1_Click()
Set cell_to_paste_next_dataset = Cells(1, 1)
 Set active_workbook = ActiveWorkbook
 Set active_sheet = Sheet2
 Application.DisplayAlerts = False

 File_Path = Range("a1").Value
 strName = Dir(File_Path & "\" & "*.xls")

 Do While strName <> vbNullString

 If active_workbook.Name <> strName And strName <> "" Then
 Workbooks.Open Filename:=File_Path & "\" & strName
 Set dataset_workbook = ActiveWorkbook
 Range(ActiveCell.SpecialCells(xlLastCell), Cells(1)).Copy
 active_sheet.Activate
 Cells(ActiveCell.SpecialCells(xlLastCell).Row, 1).Select
 ActiveSheet.Paste
 dataset_workbook.Close
 End If
 strName = Dir
 Loop
 Application.DisplayAlerts = True
End Sub

มีการ copy ข้อมูลที่วางผิด จากในไฟล์จริงมี 16 row
แต่ เมื่อกดปุ่ม run ตาม code ข้อมูลมา 15 row

ไม่ทราบว่าจะต้องแก้ไขตรงส่วนไหนคะ

ขอบคุณค่ะ :)

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Tue Jun 13, 2017 7:53 pm
by snasui
:D ปรับ Code Cells(ActiveCell.SpecialCells(xlLastCell).Row, 1).Select เป็น Cells(ActiveCell.SpecialCells(xlLastCell).Row, 1).Offset(1, 0).Select ครับ

Re: RE : ไฟล์สำหรับการ Import ข้อมูลจากหลาย ๆ ไฟล์ V2

Posted: Wed Jun 14, 2017 8:20 am
by kannaree
ขอบคุณอาจารย์และทุกคนมากค่ะ

ขอพื้นที่นี้ในการให้ไฟล์ไว้สำหรับคนที่จะเอาไปใช้งานต่อเพื่อเป็นประโยชน์ต่อไปค่ะ
autoFile - ver.2.xlsm