Page 2 of 2
Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ
Posted: Fri Aug 21, 2015 11:20 am
by wongsaton
ให้เพิ่มโค๊ด
ไว้บนสุดครับ แล้วรันโค๊ดดู
ขอบคุณ คุณ 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 ช่วยกรุณาอธิบายโปรแกรมแต่ละคำสั่ง จะผิดกฏไหมครับ
รบกวนหน่อยนะครับ เพื่อเป็นความรู้เพิ่มเติมเพื่อที่ผมจะได้สามารถจะนำไปปรับใช้ในอนาคตได้อีกครับ เพราะบางคำสั่งผมไม่ค่อยเข้าใจเท่าไรครับ ขอความกรุณาด้วยนะครับถ้าผิดกฏหรือผิดพลาดประการใด ขออภัยด้วยครับ ขอบคุณครับ

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

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

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ
Posted: Fri Aug 21, 2015 6:09 pm
by wongsaton

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

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

Mark
on error resume next ให้เป็น Comment แล้วแจ้งมาอีกรอบว่าโปรแกรมฟ้องว่าอย่างไรครับ
Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ
Posted: Fri Aug 21, 2015 7:13 pm
by wongsaton
snasui wrote:
Mark
on error resume next ให้เป็น Comment แล้วแจ้งมาอีกรอบว่าโปรแกรมฟ้องว่าอย่างไรครับ
โปรแกรม error ที่บรรทัดนี้ครับ
Code: Select all
Workbooks.Open(strPath & strFileName).Activate
(โดยมีลูกศรชี้และเป็นแถบสีเหลืองครับ)
ผมแนบภาพหน้าจอตอนรันมาด้วยครับ รบกวนอาจารย์ทีนะครับ ขอบคุณครับ

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ
Posted: Fri Aug 21, 2015 7:16 pm
by snasui

โปรแกรมแจ้งความผิดพลาดไว้ชัดเจนแล้วว่าไม่พบไฟล์ ได้ตรวจสอบไฟล์ว่ามีอยู่จริงตามที่โปรแกรมฟ้องแล้วหรือไม่ครับ

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

ตรวจสอบแล้วครับอาจารย์ ไฟล์มีอยู่จริงและชื่อตรงตามในโปรแกรมทุกอย่างเลยครับ แต่โปรแกรมกลับไม่ยอมเปิดไฟล์ ผมจนปัญญาจริงๆครับ รบกวนอาจารย์ทีนะครับ ขอบคุณครับ
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
อ. คนควนบอกไปแล้วว่า ไม่มีไฟล์อยู่ โค๊ดจึงไม่ทำงาน
คุณตรวจดูแต่ในโฟลเดอร์ แต่ไม่ได้ดูในโค๊ดว่าอ้างถึงที่ใด
ลองปรับจาก
เป็น
Code: Select all
strPath = "C:\Users\MEA\Desktop\ITRON\"
Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ
Posted: Sat Aug 22, 2015 3:24 pm
by wongsaton
bank9597 wrote:อ. คนควนบอกไปแล้วว่า ไม่มีไฟล์อยู่ โค๊ดจึงไม่ทำงาน
คุณตรวจดูแต่ในโฟลเดอร์ แต่ไม่ได้ดูในโค๊ดว่าอ้างถึงที่ใด
ลองปรับจาก
เป็น
Code: Select all
strPath = "C:\Users\MEA\Desktop\ITRON\"
เรียนคุณ bank และทุกท่านครับ
Code: Select all
strPath = "C:\Users\MEA\Desktop\ITRON\
code นี้คือที่มาของข้อมูลที่ผมนำมาเปิดในโปรแกรมจริงอีกต่อหนึ่งครับ และ
code นี้คือที่อยู่ของไฟล์ปลายทางที่ผมจะนำข้อมูลที่ได้คำนวณในโปรแกรมจริงเรียบร้อยแล้ว ไปบันทึกอยู่ในไฟล์ปลายทางตามชื่อใน row ที่กำหนดครับ
รูปแบบโปรแกรมของผมคร่าวๆครับ ในโปรแกรมจริง ผมจะมีปุ่มเพื่อเปิดไฟล์ข้อมูลขึ้นมา (ที่มาข้อมูลที่เปิด C:\Users\MEA\Desktop\ITRON) เพื่อเลือกข้อมูลที่ต้องการมาคำนวณในโปรแกรมก่อน (โปรแกรมได้ใส่สูตรไว้ในการคำนวณแล้วครับ) และเมื่อข้อมูลได้คำนวณเสร็จ ผมจึงสร้างปุ่มที่จะสามารถบันทึกข้อมูลที่ได้คำนวณเสร็จแล้วไปในไฟล์ปลายทางอีกไฟล์หนึ่ง ซึ่งเป็นไฟล์ว่างที่ผมได้สร้างไว้เพื่อรองรับข้อมูล (ที่อยู่ของไฟล์ว่าง D:\Excle VBA) ตามชื่อในเซลล์ที่ผมได้กำหนดไว้ แต่ปัญหาคือดังนี้ครับ
ปัญหาของผมที่เกิดปัญหาคือ เมื่อรันโปรแกรม โปรแกรมโหลดครับ เหมือนจะทำงาน แต่พอโหลดเสร็จโปรแกรมกลับไม่เปิดไฟล์ปลายทางที่ผมต้องการขึ้นมาครับ ผมแก้ปัญหานี้ไม่ได้จริงๆครับ ผมได้ตรวจสอบตามที่อาจารย์และคุณ bank9597 แนะนำทุกอย่างแล้วครับ แต่ก็ยังหาจุดบอดไม่ได้ครับและโปรแกรมก็ยังไม่เปิดไฟล์ปลายทางขึ้นมา ขอความกรุณาทุกท่านช่วยแนะนำการแก้ปัญหาในครั้งนี้ด้วยนะครับ ขอบคุณครับ
ผมแนบไฟล์ตัวอย่างโปรแกรมจริงมาแล้วนะครับ รบกวนด้วยนะครับ
ปล.ผมทำผิดกฏหรือผิดพลาดประการใด ผมขออภัยด้วยนะครับ

Re: การเรียกเปิดไฟล์ที่ต้องการพร้อมกับ copy ข้อมูลครับ
Posted: Sat Aug 22, 2015 4:33 pm
by DhitiBank
สวัสดีครับ
ผมลองดาวน์โหลดมาช่วยทดสอบโดยเลือกไฟล์มั่วๆ ที่มีในเครื่อง แล้วลองรันโค้ดทีละคำสั่ง ข้อมูลก็มาปรากฏตามรูปครับ
test.png

ไม่ทราบว่าวิธีใช้ไฟล์เป็นแบบนี้หรือเปล่าครับ คือกดปุ่ม "เลือกไฟล์" ในชีท "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 แนะนำ ก็สามารถใช้งานโปรแกรมได้อย่างไม่มีปัญหาครับ
ขอบคุณทุกๆท่านอีกครั้งนะครับ ผมจะต้องนำเสนอหัวหน้าวันจันทร์นี้ครับ ไว้ถ้าเกิดปัญหาใดๆผมขออนุญาติรบกวนอีกนะครับทุกท่าน
ปล.แต่ผมขอให้ไม่มีปัญหาใดๆแล้วนะครับ

ขอบคุณครับ