Page 1 of 1

รบกวนสอบถาม Code Vba copy หลายไฟล์ หลายชีท

Posted: Tue Jun 25, 2013 5:08 pm
by snoopy1150
เรียน ทุกท่าน ครับ

คือผมติดปัญหาเรื่อง Code การ Copy ไฟล์ หลายไฟล์ และ หลายยชีท
ผมเขียนได้แค่เปิดไฟล์ และ หลายชีท แต่ผมติดตรงที่ต้องเขียน code สลับ Workbook เก่า กับ ใหม่ ครับ

ดังนั้นผมรบกวนผู้รู้ตรวจสอบให้ทีครับ

Re: รบกวนสอบถาม Code Vba copy หลายไฟล์ หลายชีท

Posted: Tue Jun 25, 2013 6:30 pm
by nattasiray
ให้ใช้โค้ด

Code: Select all

Workbooks(ตัวเลข).Activate
ลอง
ปิดแฟ้มทั้งหมด
เปิดแฟ้มที่มีแมโครที่คุณเขียนไม่ได้
กดแป้น Ctrl+N
กดแป้น Atl+F11
ที่ VBE กดแป้น Ctrl+G
พิมพ์ Msgbox "The Name of Workbooks(1) is '" & Workbooks(1).Name &"'"
กด Enter สังเกตข้อความที่อยู่ในเครื่องหมาย ' ' ว่า เป็นชื่อแฟ้มอะไร
พิมพ์ Msgbox "The Name of Workbooks(2) is '" & Workbooks(2).Name &"'"
กด Enter สังเกตข้อความที่อยู่ในเครื่องหมาย ' ' ว่า เป็นชื่อแฟ้มอะไร

Workbooks(1) คือแฟ้มที่เปิดขึ้นเป็นอันดับแรก


เสริม
กรณีที่คุณต้องการไปบรรทัดว่างที่ต่อจากบรรทัดสุดท้ายของตารางฐานข้อมูล

ให้ใช้โค้ด

Code: Select all

dim lngBlankRowNum as Long
lngBlankRowNum = IIF(Application.Versioni < 8,16384,IIf(Application.Version < 12, 65536, 1048576))
Application.goto (Range("A"&lngBlankRowNum).end(XlUp).Offset(1,0))
ถ้าต้องการทราบว่าหมายเลขบรรทัดว่างที่ต่อจากบรรทัดสุดท้ายของตารางฐานข้อมูล ให้ใช้รหัส

Code: Select all

dim lngBlankRowNum As Long, Dim lngMaxRowNum As Long
lngMaxRowNum = IIF(Application.Versioni < 8,16384,IIf(Application.Version < 12, 65536, 1048576))
lngBlankRowNum = Range("A"& lngMaxRowNum).end(XlUp).Offset(1,0).Row
ตรง Range("A"& lngMaxRowNum) เปลี่ยนอักษรคอลัมน์ของเซลล์อ้างอิงให้ตรงตามการใช้งาน

โค้ดการอ้างอิงโฟลเดอร์ที่แฟ้มที่มีแมโครวางอยู่

Code: Select all

ThisWorkbook.Path
โค้ดนี้จะทำให้ยีดหยุ่นกว่าการไปกำหนดค่าที่เซลล์ เพราะถ้าเปลี่ยนตำแหน่งวางของแฟ้มที่มีแมโคร รหัสจะทำงานได้ตลอดเวลา