Page 2 of 2

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Fri Aug 21, 2015 11:20 am
by wongsaton
ให้เพิ่มโค๊ด :ard:

Code: Select all

On Error Resume Next
ไว้บนสุดครับ แล้วรันโค๊ดดู
ขอบคุณ คุณ bank9597 มากๆนะครับ โปรแกรมไม่ error แล้วครับ ใจหายเลยครับเมื่อกี้
แต่มีปัญหาอีกแล้วครับ พอหาย error การ copy ข้อมูลที่ทำได้ ตอนนี้มันกลับไม่ copy ข้อมูลตามที่กำหนดแล้วครับ แต่การค้นหาไฟล์ปลายทางจาก row B2,F2,J2 ยังทำได้ดีปกติแล้วครับ มันเกิดจากสาเหตุอะไรหรอครับ รบกวนแนะนำผมทีครับ ขอบคุณครับ

ผมแนบไฟล์ตัวอย่างมาแล้วครับ

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Fri Aug 21, 2015 11:29 am
by bank9597
โค๊ดระบุไปที่ b2 i2 m2 ไม่ใช่ b f j
โค๊ดจะเอาค่าที่ไปบันทึกโดยอ้างจาก range ข้างบน
หากคุณเปลี่ยน range ใหม่ คุณกต้องขยับข้อมูลตามไปด้วย ให้เหมือนเดิม
เว้นแต่คุณจะเข้าใจโค๊ด และปรับให้โค๊ดไปดึงค่าให้ถูกที่ครับ

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Fri Aug 21, 2015 2:01 pm
by wongsaton
โค๊ดระบุไปที่ b2 i2 m2 ไม่ใช่ b f j
โค๊ดจะเอาค่าที่ไปบันทึกโดยอ้างจาก range ข้างบน
หากคุณเปลี่ยน range ใหม่ คุณกต้องขยับข้อมูลตามไปด้วย ให้เหมือนเดิม
เว้นแต่คุณจะเข้าใจโค๊ด และปรับให้โค๊ดไปดึงค่าให้ถูกที่ครับ
ครับผม ผมพอจะทราบวิธีการแก้ไขและปรับ code ให้ถูกต้องตามที่ต้องการอยู่บ้างครับ (เอกสารที่ใช้เป็นเพียงตัวอย่างจึงใช้ข้อมูลที่เข้าใจง่ายครับ)
ขอบพระคุณอาจารย์ snasui กับ คุณ bank 9597 มากๆเลยครับ โปรแกรมทำงานสมบูรณ์แล้วครับ ผมดีใจมากๆครับ สำเร็จเสียทีทำงานได้100%แล้วครับ
ถ้าผมอยากจะรบกวนให้อาจารย์กับ คุณ bank 9597 ช่วยกรุณาอธิบายโปรแกรมแต่ละคำสั่ง จะผิดกฏไหมครับ
รบกวนหน่อยนะครับ เพื่อเป็นความรู้เพิ่มเติมเพื่อที่ผมจะได้สามารถจะนำไปปรับใช้ในอนาคตได้อีกครับ เพราะบางคำสั่งผมไม่ค่อยเข้าใจเท่าไรครับ ขอความกรุณาด้วยนะครับถ้าผิดกฏหรือผิดพลาดประการใด ขออภัยด้วยครับ ขอบคุณครับ :D :thup:

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Fri Aug 21, 2015 2:49 pm
by snasui
wongsaton wrote:ถ้าผมอยากจะรบกวนให้อาจารย์กับ คุณ bank 9597 ช่วยกรุณาอธิบายโปรแกรมแต่ละคำสั่ง จะผิดกฏไหมครับ
:D ไม่ผิดกฎแต่อย่างใดครับ หากท่านใดมีเวลาก็สามารถตอบแบบละเอียดได้ตามสะดวก แต่อาจจะไม่สะดวกกับหลายคนเช่นผมเป็นต้นครับ :mrgreen:

ควรศึกษามาเองและถามเฉพาะที่ติดปัญหา ผู้ตอบจะได้มีเวลาช่วยเหลือสมาชิกท่านอื่นๆ ที่รอคอยคำตอบด้วยครับ :P

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Fri Aug 21, 2015 6:09 pm
by wongsaton
:D ไม่ผิดกฎแต่อย่างใดครับ หากท่านใดมีเวลาก็สามารถตอบแบบละเอียดได้ตามสะดวก แต่อาจจะไม่สะดวกกับหลายคนเช่นผมเป็นต้นครับ :mrgreen:

ควรศึกษามาเองและถามเฉพาะที่ติดปัญหา ผู้ตอบจะได้มีเวลาช่วยเหลือสมาชิกท่านอื่นๆ ที่รอคอยคำตอบด้วยครับ :P
ครับอาจารย์ เรื่องความหมาย code ผมจะพยายามศึกษาเองก่อน ถ้าติดปัญหาจะมาถามทุกท่านใหม่นะครับ

แต่ตอนนี้มีปัญหาเรื่องโปรแกรมอีกแล้วครับ :cry: เมื่อผมนำ code ที่ใช้ได้ดีแล้วและผมได้ทดลองใช้ในโปรแกรมจำลองที่ผมทำขึ้นมาแล้วและก็ไม่มีปัญหาใดๆ เป็นไปตามที่ผมต้องการทุกอย่าง แต่พอผมนำมาปรับใช้กับโปรแกรมจริงกลับเกิดปัญหาครับ ไฟล์ปลายทางไม่เปิดขึ้นมา มันเกิดจากสาเหตุอะไรครับ รบกวนอาจารย์และทุกท่านอีกครั้งนะครับ ขอบคุณล่วงหน้านะครับ ปล.ผมแนบไฟล์ตัวอย่างมาด้วยครับ

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Fri Aug 21, 2015 7:00 pm
by snasui
:D Mark on error resume next ให้เป็น Comment แล้วแจ้งมาอีกรอบว่าโปรแกรมฟ้องว่าอย่างไรครับ

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Fri Aug 21, 2015 7:13 pm
by wongsaton
snasui wrote::D Mark on error resume next ให้เป็น Comment แล้วแจ้งมาอีกรอบว่าโปรแกรมฟ้องว่าอย่างไรครับ
โปรแกรม error ที่บรรทัดนี้ครับ

Code: Select all

Workbooks.Open(strPath & strFileName).Activate
(โดยมีลูกศรชี้และเป็นแถบสีเหลืองครับ)
ผมแนบภาพหน้าจอตอนรันมาด้วยครับ รบกวนอาจารย์ทีนะครับ ขอบคุณครับ :D

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Fri Aug 21, 2015 7:16 pm
by snasui
:D โปรแกรมแจ้งความผิดพลาดไว้ชัดเจนแล้วว่าไม่พบไฟล์ ได้ตรวจสอบไฟล์ว่ามีอยู่จริงตามที่โปรแกรมฟ้องแล้วหรือไม่ครับ :?:

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Fri Aug 21, 2015 7:22 pm
by wongsaton
snasui wrote::D โปรแกรมแจ้งความผิดพลาดไว้ชัดเจนแล้วว่าไม่พบไฟล์ ได้ตรวจสอบไฟล์ว่ามีอยู่จริงตามที่โปรแกรมฟ้องแล้วหรือไม่ครับ :?:
ตรวจสอบแล้วครับอาจารย์ ไฟล์มีอยู่จริงและชื่อตรงตามในโปรแกรมทุกอย่างเลยครับ แต่โปรแกรมกลับไม่ยอมเปิดไฟล์ ผมจนปัญญาจริงๆครับ รบกวนอาจารย์ทีนะครับ ขอบคุณครับ

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Fri Aug 21, 2015 7:39 pm
by bank9597
แก้ปัญหาล่าสุดก่อนน่ะครับ
ให้ไปที่ Folder Option > View > ติ๊กถูกหน้าช่อง Hide Extension ... > OK
แล้วรันโค๊ดดูครับ
ผมได้ตอบไปแล้วครับ

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Fri Aug 21, 2015 7:59 pm
by wongsaton
bank9597 wrote:
แก้ปัญหาล่าสุดก่อนน่ะครับ
ให้ไปที่ Folder Option > View > ติ๊กถูกหน้าช่อง Hide Extension ... > OK
แล้วรันโค๊ดดูครับ
ผมได้ตอบไปแล้วครับ
ผมได้ทำอย่างที่คุณ bank9597 บอกตั้งแต่ตอนแรกแล้วครับ แต่ก็ยังเป็นปัญหาอย่างที่ผมกล่าวไปครับ ไม่ทราบว่าคอมพิวเตอร์ของคุณ bank9597 สามารถรัน code นี้ในไฟล์ตัวอย่าง(แนบไว้ในความเห็นที่แล้ว) ได้ไหมครับ รบกวนหน่อยครับ ขอบคุณครับ :)

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Fri Aug 21, 2015 8:22 pm
by bank9597
อ. คนควนบอกไปแล้วว่า ไม่มีไฟล์อยู่ โค๊ดจึงไม่ทำงาน

คุณตรวจดูแต่ในโฟลเดอร์ แต่ไม่ได้ดูในโค๊ดว่าอ้างถึงที่ใด :mrgreen:
ลองปรับจาก

Code: Select all

strPath = "D:\Excle VBA\"
เป็น

Code: Select all

strPath = "C:\Users\MEA\Desktop\ITRON\"

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Sat Aug 22, 2015 3:24 pm
by wongsaton
bank9597 wrote:อ. คนควนบอกไปแล้วว่า ไม่มีไฟล์อยู่ โค๊ดจึงไม่ทำงาน

คุณตรวจดูแต่ในโฟลเดอร์ แต่ไม่ได้ดูในโค๊ดว่าอ้างถึงที่ใด :mrgreen:
ลองปรับจาก

Code: Select all

strPath = "D:\Excle VBA\"
เป็น

Code: Select all

strPath = "C:\Users\MEA\Desktop\ITRON\"
เรียนคุณ bank และทุกท่านครับ

Code: Select all

strPath = "C:\Users\MEA\Desktop\ITRON\
code นี้คือที่มาของข้อมูลที่ผมนำมาเปิดในโปรแกรมจริงอีกต่อหนึ่งครับ และ

Code: Select all

strPath = "D:\Excle VBA\"
code นี้คือที่อยู่ของไฟล์ปลายทางที่ผมจะนำข้อมูลที่ได้คำนวณในโปรแกรมจริงเรียบร้อยแล้ว ไปบันทึกอยู่ในไฟล์ปลายทางตามชื่อใน row ที่กำหนดครับ

รูปแบบโปรแกรมของผมคร่าวๆครับ ในโปรแกรมจริง ผมจะมีปุ่มเพื่อเปิดไฟล์ข้อมูลขึ้นมา (ที่มาข้อมูลที่เปิด C:\Users\MEA\Desktop\ITRON) เพื่อเลือกข้อมูลที่ต้องการมาคำนวณในโปรแกรมก่อน (โปรแกรมได้ใส่สูตรไว้ในการคำนวณแล้วครับ) และเมื่อข้อมูลได้คำนวณเสร็จ ผมจึงสร้างปุ่มที่จะสามารถบันทึกข้อมูลที่ได้คำนวณเสร็จแล้วไปในไฟล์ปลายทางอีกไฟล์หนึ่ง ซึ่งเป็นไฟล์ว่างที่ผมได้สร้างไว้เพื่อรองรับข้อมูล (ที่อยู่ของไฟล์ว่าง D:\Excle VBA) ตามชื่อในเซลล์ที่ผมได้กำหนดไว้ แต่ปัญหาคือดังนี้ครับ

ปัญหาของผมที่เกิดปัญหาคือ เมื่อรันโปรแกรม โปรแกรมโหลดครับ เหมือนจะทำงาน แต่พอโหลดเสร็จโปรแกรมกลับไม่เปิดไฟล์ปลายทางที่ผมต้องการขึ้นมาครับ ผมแก้ปัญหานี้ไม่ได้จริงๆครับ ผมได้ตรวจสอบตามที่อาจารย์และคุณ bank9597 แนะนำทุกอย่างแล้วครับ แต่ก็ยังหาจุดบอดไม่ได้ครับและโปรแกรมก็ยังไม่เปิดไฟล์ปลายทางขึ้นมา ขอความกรุณาทุกท่านช่วยแนะนำการแก้ปัญหาในครั้งนี้ด้วยนะครับ ขอบคุณครับ
ผมแนบไฟล์ตัวอย่างโปรแกรมจริงมาแล้วนะครับ รบกวนด้วยนะครับ

ปล.ผมทำผิดกฏหรือผิดพลาดประการใด ผมขออภัยด้วยนะครับ :cry:

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Sat Aug 22, 2015 4:33 pm
by DhitiBank
สวัสดีครับ

ผมลองดาวน์โหลดมาช่วยทดสอบโดยเลือกไฟล์มั่วๆ ที่มีในเครื่อง แล้วลองรันโค้ดทีละคำสั่ง ข้อมูลก็มาปรากฏตามรูปครับ
test.png
:arrow: ไม่ทราบว่าวิธีใช้ไฟล์เป็นแบบนี้หรือเปล่าครับ คือกดปุ่ม "เลือกไฟล์" ในชีท "Normal Display Registers date1" --> เลือกไฟล์ (ผมเลือก 2 ไฟล์) --> Open
ก็มาตามรูปครับ

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Sat Aug 22, 2015 5:56 pm
by bank9597
ผมทดสอบแล้ว ไม่มีปัญหาใดๆ สามารถเปิดไฟล์ปลายทางได้แต่ "ไม่มีข้อมูลไปบันทึก" ลองดูตัวอย่างการทดสอบตามภาพด้านล่างครับ

ปรับ path ใหม่เป็น

Code: Select all

strPath = "C:\Users\bank9597\Desktop\new\"
ใน Path ดังกล่าวมีไฟล์ 3 ไฟล์ ตามภาพด้านล่าง

ปรับโค๊ดให้หาตำแหน่งข้อมูลที่ต้องการ Copy ใหม่

Code: Select all

Set rSource = wbMain.Sheets(1).Range(strName).Offset(-8, -1).Resize(7, 3)
ผลการ Run ตามภาพด้านล่าง

ผมไม่เจอข้อผิดพลาดในเรื่องการเปิดไฟล์ แต่จะเจอว่าโค๊ดเดิม ไม่ได้ถูกปรับให้ระบุตำแหน่งข้อมูลที่จะนำไปบันทึกได้ถูกต้องอย่างเดียว

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ

Posted: Sat Aug 22, 2015 6:54 pm
by wongsaton
ขอบคุณมากๆนะครับทุกๆท่าน โปรแกรมผมทำงานได้ดีแล้วครับ ไม่มีปัญหาใดๆแล้วครับ ผมได้ลองปรับ code ดูแล้วครับ
ปัญหาเกิดจากไฟล์ปลายทางครับ เปลี่ยนไฟล์ปลายทางอย่างที่คุณ bank9597 แนะนำ ก็สามารถใช้งานโปรแกรมได้อย่างไม่มีปัญหาครับ :thup:

ขอบคุณทุกๆท่านอีกครั้งนะครับ ผมจะต้องนำเสนอหัวหน้าวันจันทร์นี้ครับ ไว้ถ้าเกิดปัญหาใดๆผมขออนุญาติรบกวนอีกนะครับทุกท่าน :D
ปล.แต่ผมขอให้ไม่มีปัญหาใดๆแล้วนะครับ :lol: ขอบคุณครับ