เพื่อมุ่งให้เกิดคุณภาพจากการอบรมสูงสุด Excel Expert Training ให้การอบรม Excel กลุ่มเล็กๆ ไม่เกิน 6 คนทุกคนสามารถเรียนรู้ Excel อย่างใกล้ชิด จะมาคนเดียวหรือมาเป็นกลุ่มแล้วนัดวันอบรมแบบส่วนตัวก็ได้
ผู้เข้าอบรมทุกคนสามารถติดตามเนื้อหาที่อบรมได้อย่างชัดเจนจากจอภาพด้านหน้าของตัวเอง
-
ให้VBAหาภาพในfoldersและใส่ภาพในไฟล์excelอัตโนมัติ
ให้VBAหาภาพในfoldersและใส่ภาพในไฟล์excelอัตโนมัติ
ต่อจากให้ VBA แยกชีทค่ะ
ปัจจุบันใช้ code
Sub Macro1()
Dim i As Integer
For i = 1 To ThisWorkbook.Worksheets.Count
ThisWorkbook.Worksheets(i).Copy
'ActiveSheet.Name = Workbooks("sheet.xlsm").Sheets(i).Range("O4").Value
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Range("O4").Value & Range("j13").Value & ".xls", FileFormat:=xlExcel8, CreateBackup:=False
ActiveWorkbook.Close True
Next i
End Sub
เพื่อแยกชีท แต่ในไฟล์ excel อยากให้ใส่ภาพให้กับ cel ไปพร้อมกับการแยกชีทได้ไหมค่ะโดยมีเส้นทางดังนี้
1. ไดร์ที่จัดเก็บภาพ R:\SQA DEDUCT PAYMENT Y11
มี 3 folders หลักคือ
1.R:\SQA DEDUCT PAYMENT Y11\EVENT PICTURES DRYER
2.R:\SQA DEDUCT PAYMENT Y11\EVENT PICTURES FRONT LOAD
3.R:\SQA DEDUCT PAYMENT Y11\EVENT PICTURES TOP LOAD
2.ภาพใน 3 folders ก็จะประกอบด้วย folders ย่อยชื่อ wk01 ถึง wk52 (เป็นสัปดาห์ใน 1 ปีค่ะ)
3.ใน folders ย่อยชื่อ wk01 ถึง wk52 ประกอบด้วย Folders ชื่อ RJI และ RJL
4.ใน folders ชื่อ RJI และ RJL ประกอบไปด้วย Folders ที่มีเลข 5 ถึง 6 หลัก (เป็นหมายเลขเอกสารค่ะ)
5.หมายเลขเอกสารที่เป็นชื่อ Folders จะไม่ซ้ำกันของ Folders ที่มีทั้งหมด ใน3 folders หลักคือ
1.R:\SQA DEDUCT PAYMENT Y11\EVENT PICTURES DRYER
2.R:\SQA DEDUCT PAYMENT Y11\EVENT PICTURES FRONT LOAD
3.R:\SQA DEDUCT PAYMENT Y11\EVENT PICTURES TOP LOAD
6.ภายใต้ Folders ที่มีเลข 5 ถึง 6 หลัก (เป็นหมายเลขเอกสารค่ะ) นั้นจะมี 3 ภาพ และมี 2 ภาพกำหนดให้ชื่อ 1 และ 2
สิ่งที่ต้องการคือ
1.ต้องการดึงภาพ 1 ไปใส่ cel ชื่อ pic1
2.ต้องการดึงภาพ 2 ไปใส่ cel ชื่อ pic2
3.โดยมีเงื่อนไขว่า ต้องเช็ครหัสเอกสารก่อนใน cel J29 ของทุก sheet ทั้งหมดภายใน worksbook
ไฟล์แนบ
1.มีภาพ Foldersประกอบ เหลือ 2 ภาพ แนบไม่ได้ค่ะ
2.มีไฟล์ .xlsm ประกอบ ชื่อ AddPic เหลือ 1 ไฟล์ตัวอย่าง แนบไม่ได้ค่ะ
ถามว่าจะต้องเพิ่ม code ต่อจาก code ที่มีอย่างไรบ้างค่ะ
-
อ่านคำอธิบายมาก ๆ แล้วปวดหัวครับ
คิดว่าน่าจะเพิ่มเติมดังนี้ครับ
1. ชีตที่ให้แทรกนั้นต้องมีเซลล์ที่กรอกชื่อและที่เก็บไฟล์ภาพ
2. ภาพที่จะแทรก ควรจะผ่านการตกแต่งเรียบร้อยแล้ว (คือแทรกมาแล้วไม่ต้องมาย่อ/ขยาย หรือทำอะไรอีก) ทุกภาพ
3. สำหรับคนอื่นผมไม่รู้ แต่สำหรับผมนั้นการเก็บภาพเป็นโฟลเดอร์ย่อย ๆ ๆ ๆ ๆ หลายชั้นจะทำให้เขียนรหัสยาก
4. เวลาทำเอกสารทำไมไม่แทรกภาพไปเลยล่ะครับ แค่ภาพเดียวเอง

VBA ใส่ภาพน่ะไม่ยากหรอกครับ ผมว่ายากที่การหา
-
จำนวนไฟล์เยอะที่ต้องใส่ภาพ

Originally Posted by
excel_fever
คิดว่าน่าจะเพิ่มเติมดังนี้ครับ
1. ชีตที่ให้แทรกนั้นต้องมีเซลล์ที่กรอกชื่อและที่เก็บไฟล์ภาพ
2. ภาพที่จะแทรก ควรจะผ่านการตกแต่งเรียบร้อยแล้ว (คือแทรกมาแล้วไม่ต้องมาย่อ/ขยาย หรือทำอะไรอีก) ทุกภาพ
3. สำหรับคนอื่นผมไม่รู้ แต่สำหรับผมนั้นการเก็บภาพเป็นโฟลเดอร์ย่อย ๆ ๆ ๆ ๆ หลายชั้นจะทำให้เขียนรหัสยาก
4. เวลาทำเอกสารทำไมไม่แทรกภาพไปเลยล่ะครับ แค่ภาพเดียวเอง

VBA ใส่ภาพน่ะไม่ยากหรอกครับ ผมว่ายากที่การหา
เหตุผลคือ
1.ไฟล์ที่แยกมีชื่อ เอกสาร MA เป็นเลขที่ไม่ซ้ำ
2.ไฟล์ที่แยกมาต่อ 1 อาทิตย์ มีมากกว่า 200 ไฟล์ แต่ละไฟล์จะต้องมานั่งเพิ่มภาพเข้าไป
ประมาณ 2 ภาพต่อไฟล์
3.ภาพที่ใส่ถ้า บีบภาพให้เล็กมากจะมีผลทำให้มองภาพไม่ชัด เพราะเป็นการบอกปัญหาคุณภาพ ต่อผู้ไม่เข้าใจ คือ supplier ค่ะ
4.การวาง folder เป็นการวางภาพโดยทีมหนึ่ง ลักษณะการวางเป็นการวางแบบซ้ำๆปัจจุบันไม่ได้เปลี่ยนชื่อไฟล์เอาตามที่รันจากกล้องเลย แต่มีเลข ma ที่สามารถระบุได้หากทำการดึงภาพเพราะไม่ซ้ำค่ะ
ช่วยหาหนทางหน่อยนะค่ะ เพราะหากทำได้จะลดเวลาการทำงานลงไปมากเลยค่ะ:yesnod:
-
ส้มคิดไว้แล้วเชียวว่างานของเจ้าของกระทู้ ยังไม่จบแค่กระทู้นั้นแน่ๆ :smile:
-
ถูกต้องแล้วค่ะ

Originally Posted by
orange_soi9
ส้มคิดไว้แล้วเชียวว่างานของเจ้าของกระทู้ ยังไม่จบแค่กระทู้นั้นแน่ๆ :smile:
เอาทีละท่อนดีกว่า ถ้ารวมครั้งเดียว กลัวสมอง(ตัวเอง) จะรับไม่ทัน ค่ะ :yesnod:
-
คำถามเรื่อง VBA ผู้ใช้ต้องสามารถประยุกต์รหัสเองได้บ้าง
ผมขอแนะนำดังนี้ครับ
ก่อนคำสั่ง Thisworkbook.Close True ให้ใส่ขั้นตอนต่อไปนี้ลงไป
สั่งให้ VBA เขียนสูตร ค้นหาที่เก็บภาพและชื่อภาพแล้วเอามาเชื่อมต่อกัน
โฟลเดอร์1&\&โฟลเดอร์2&\&โฟลเดอร์3&\&โฟลเดอร์....&\&ชื่อภาพ.นามสกุล
โดย
โฟลเดอร์1=ค่าจากเซลล์ใหน
โฟลเดอร์2=ค่าจากเซลล์ใหน
โฟลเดอร์3=ค่าจากเซลล์ใหน
.
.
.
ชื่อภาพ=ค่าจากเซลล์ใหน.นามสกุลอะไร
แล้วจึงจะสามารถแทรกได้ครับ
-
ทำตามที่บอกแล้วค่ะ

Originally Posted by
excel_fever
ผมขอแนะนำดังนี้ครับ
ก่อนคำสั่ง Thisworkbook.Close True ให้ใส่ขั้นตอนต่อไปนี้ลงไป
สั่งให้ VBA เขียนสูตร ค้นหาที่เก็บภาพและชื่อภาพแล้วเอามาเชื่อมต่อกัน
โฟลเดอร์1&\&โฟลเดอร์2&\&โฟลเดอร์3&\&โฟลเดอร์....&\&ชื่อภาพ.นามสกุล
โดย
โฟลเดอร์1=ค่าจากเซลล์ใหน
โฟลเดอร์2=ค่าจากเซลล์ใหน
โฟลเดอร์3=ค่าจากเซลล์ใหน
.
.
.
ชื่อภาพ=ค่าจากเซลล์ใหน.นามสกุลอะไร
แล้วจึงจะสามารถแทรกได้ครับ
ช่วยตรวจสอบไฟล์ดูให้หน่อยค่ะ
ดึงภาพ
1 EVENT PICTURES TOP LOAD=D115
2 wk04=D116
3 sub=D117
4 RJ IT=D118
5 82521=D119
6 1.JPG=D120
7 2.JPG=D121
-
ทำไมมี Folder sub เพิ่มเข้ามาอีกคะ? 
-
-
ลองทำแล้วค่ะ

Originally Posted by
excel_fever
ลองเอาไปทดสอบดูครับ
ต้องขอโทษด้วยค่ะ คือไม่มี Folder sub ค่ะตาลายไปหน่อย
และลองรันสูตรแล้วค่ะ ติด Error ค่ะ
แนบไฟล์มาให้ใหม่ค่ะ
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules