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
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 ที่เห็นในภาพแนบมาครับ

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

ปรับ 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