Page 1 of 1

การดึงข้อมูลข้ามไฟล์เพื่อมารวมไว้ในไฟล์เดียว

Posted: Thu Aug 23, 2018 2:46 pm
by OnliezU
สวัสดีครับ รบกวนทุกท่านในบอร์ด ขอสอบถามเกี่ยวกับ excel นะครับ คือ ผมทำ form ไว้แล้วสร้างชุดคำสั่งที่สำหรับดึงข้อมูลจากไฟล์ลูกมารวมไว้ที่ไฟล์แม่ ซึ่งได้ทดสอบในไฟล์ Dummy ตามไฟล์ด้านล่าง มันฟ้องว่าหาไฟล์ไม่พบทั้งที่วางไฟล์ไว้ใน Path และเขียน Path ถูกแล้วทำให้ไม่สามารถดึงข้อมูลได้ตามที่ต้องการ ขอคำแนะนำในการแก้ปัญหาด้วยครับ

Code: Select all

Set wb = Workbooks.Open("C:\Users\RM\Desktop\12\Risk\db_v" & r, False, False)

ไฟล์แม่โหลด
db_new1.xlsm
ไฟล์ Dummy
db_v1.xlsm
db_v3.xlsm

Re: การดึงข้อมูลข้ามไฟล์เพื่อมารวมไว้ในไฟล์เดียว

Posted: Thu Aug 23, 2018 4:38 pm
by parakorn
ลองใส่นามสกุลไฟล์เพิ่มครับ

Re: การดึงข้อมูลข้ามไฟล์เพื่อมารวมไว้ในไฟล์เดียว

Posted: Thu Aug 23, 2018 9:10 pm
by snasui
OnliezU wrote: Thu Aug 23, 2018 2:46 pm Set wb = Workbooks.Open("C:\Users\RM\Desktop\12\Risk\db_v" & r, False, False)
:D จากไฟล์แนบยังไม่ได้กำหนดค่าให้กับตัว r ซึ่งควรจะเป็นตำแหน่งของชื่อไฟล์รวมทั้งนามสกุลไฟล์ และหาก db_v คือ Sub Foler ก่อนชื่อไฟล์จะมี \ คั่นอีกตัวครับ

Re: การดึงข้อมูลข้ามไฟล์เพื่อมารวมไว้ในไฟล์เดียว

Posted: Fri Aug 24, 2018 2:13 pm
by OnliezU
ได้ผลตามต้องการครับ ส่วน db_v เป็นชื่อไฟล์ โดยให้นับเลขลำดับจาก r ครับ

ทำไมตอนทดสอบบางครั้งมันจะฟ้องว่าหาไฟล์ไม่เจอบ่อยครั้งมาก และมีปัญหาที่การดึงข้อมูลจากไฟล์แรก Excel ดึงจาก Row ที่ 5 ขึ้นไป Row บนสุดตลอด แทนที่จะเป็น Row ที่ 5 ไปครอบไปทางขวาจนสุดแล้วครอบลงด้านล่าง ผมไม่เข้าใจว่าผมเขียนอะไรผิดตรงไหน

Re: การดึงข้อมูลข้ามไฟล์เพื่อมารวมไว้ในไฟล์เดียว

Posted: Fri Aug 24, 2018 9:54 pm
by snasui
:D ลองแนบไฟล์ที่ปรับปรุงเป็น Code ล่าสุดแล้วมาใหม่ครับ

Re: การดึงข้อมูลข้ามไฟล์เพื่อมารวมไว้ในไฟล์เดียว

Posted: Mon Aug 27, 2018 10:00 am
by OnliezU
ได้แนบไฟล์ที่ทำการแก้ไขโค้ดใหม่แล้วครับ โดยโค้ดจะอยู่ในชีท Form ครับ รบกวนทุกท่านด้วยครับ



ไฟล์ที่แก้ไขแล้ว
db_new1.xlsm
ข้อมูลดัมมี่ที่จะดึงลงไปในไฟล์แม่
db_v3.xlsm
db_v4.xlsm

Re: การดึงข้อมูลข้ามไฟล์เพื่อมารวมไว้ในไฟล์เดียว

Posted: Mon Aug 27, 2018 10:29 pm
by snasui
OnliezU wrote: Fri Aug 24, 2018 2:13 pm ได้ผลตามต้องการครับ ส่วน db_v เป็นชื่อไฟล์ โดยให้นับเลขลำดับจาก r ครับ

ทำไมตอนทดสอบบางครั้งมันจะฟ้องว่าหาไฟล์ไม่เจอบ่อยครั้งมาก และมีปัญหาที่การดึงข้อมูลจากไฟล์แรก Excel ดึงจาก Row ที่ 5 ขึ้นไป Row บนสุดตลอด แทนที่จะเป็น Row ที่ 5 ไปครอบไปทางขวาจนสุดแล้วครอบลงด้านล่าง ผมไม่เข้าใจว่าผมเขียนอะไรผิดตรงไหน
:D ใน Code กำหนดให้ Loop จาก 1 ถึง 5 หากมีไฟล์น้อยกว่า 5 ก็จะ Error ไม่ทราบว่าที่ใช้จริงมีไฟล์ถึง 5 หรือไม่ครับ :?:

Re: การดึงข้อมูลข้ามไฟล์เพื่อมารวมไว้ในไฟล์เดียว

Posted: Tue Aug 28, 2018 9:21 am
by OnliezU
snasui wrote: Mon Aug 27, 2018 10:29 pm
:D ใน Code กำหนดให้ Loop จาก 1 ถึง 5 หากมีไฟล์น้อยกว่า 5 ก็จะ Error ไม่ทราบว่าที่ใช้จริงมีไฟล์ถึง 5 หรือไม่ครับ :?:
ตอบครับ

- ไฟล์ใช้จริงมีไฟล์ถึง 5 ครับ(ซึ่งในอนาคตอาจจะมากกว่า 5 ไฟล์ครับ) และตอนนี้ไม่เจอการฟ้องว่าหาไฟล์ไม่เจอแล้วครับ เพราะผมปรับ Path ให้น้อยลง คิดว่าคงเป็นเพราะ Path ที่มากเกินไป

- สำหรับปัญหา "การดึงข้อมูลจากไฟล์แรก Excel ดึงจาก Row ที่ 5 ขึ้นไป Row บนสุดตลอด แทนที่จะเป็น Row ที่ 5 ไปครอบไปทางขวาจนสุดแล้วครอบลงด้านล่าง" พบว่าถ้าข้อมูลตัวแรกที่เลือกเป็นค่าว่างแล้ว Excel จะครอบขึ้นบนแทน ซึ่งผมได้แก้ไขด้วยการแจ้งให้ผู้ใช้งานบันทึกข้อมูลตัวแรกที่เลือกก่อนที่จะครอบขวาแล้วลงล่าง ต้องไม่เป็นค่าว่างครับ ซึ่งคงเป็นการแก้ไขเบื้องต้นไปก่อนครับ

ขอบคุณครับ