Page 1 of 1
ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Tue Nov 27, 2012 10:06 am
by sdmania
สวัสดีครับอาจารย์
ผมใช้ excel 2003 ครับ
ผมใช้ปุ่มส่งข้อมูล (โดยใช้คำสั่งvbe) book1-Sheet1 ส่งข้อมูลไป book1-Sheet2 ได้ครับ
คราวนี้ผมกำลังจะหัดส่งข้อมูลโดยปุ่ม(ที่เขียนด้วย VBE ) จากbook1-Sheet1 ไป Book2-Sheet2 เกิดerror ที่book1ครับ
คำถามครับ>>1.ผมต้องพิมพ์ที่อยู่ Book2-sheet2 อย่างไรครับ?? (กรณีอยู่ในเครื่องเดียวกันครับ
2.ผมต้องพิมพ์ที่อยู่ Book2-sheet2 อย่างไรครับ (กรณี Book2-Sheet2 อยู่อีกเครื่องครับ
Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Tue Nov 27, 2012 10:07 am
by sdmania
ไฟล์ตัวอย่างคำถามครับ
Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Tue Nov 27, 2012 10:08 am
by sdmania
ตัวอย่าง errorครับ
Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Tue Nov 27, 2012 10:20 am
by bank9597
กรณีทำการบันทึกหรือส่งข้อมูลข้ามไฟล์
จำเป็นต้องเปิดไฟล์ทั้งสองก่อนสเมอครับ
ส่วนการระบุที่อยู่นั้น เราสามารถเพียงใส่แค่ชื่อไฟล์ได้เลยในกรณีที่ทั้งสองไฟล์อยู่โฟลเดอร์เดียวกันครับ
Code: Select all
Sub Click_send_data_book1()
Dim intRows As Long
Dim n As Range, sn As Range
intRows = Rows.Count
With Workbooks("Book2.xls").Worksheets("Sheet2")
Set n = .Range("A" & intRows).End(xlUp).Offset(1, 0)
End With
Set sn = Sheets("sheet1").Range("b1:d1")
sn.Copy
n.PasteSpecial xlPasteValues
Application.CutCopyMode = False
MsgBox "ä´éÃѺ¢éÍÁÙÅáÅéÇ"
End Sub
Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Tue Nov 27, 2012 10:49 am
by sdmania
ได้แล้วครับผม ขอบคุณ คุณBank มากครับ

Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Tue Nov 27, 2012 12:17 pm
by sdmania
คุณBank ครับ ผมรบกวนอีกนิดครับ
สมมุติว่า book2.xls อยู่ในโฟลเดอร์ work_001
ผมจะต้องไปแก้ที่code ของ Book1ว่าอย่างไรครับ
**ทดลองใส่เองแล้วยังไม่ถูกสักทีน่ะครับเลยต้องรบกวนอีกนิดครับผม
Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Tue Nov 27, 2012 12:53 pm
by snasui

มาช่วยเสริมครับ
bank9597 wrote:กรณีทำการบันทึกหรือส่งข้อมูลข้ามไฟล์ จำเป็นต้องเปิดไฟล์ทั้งสองก่อนสเมอครับ
ต้องเปิดไฟล์หรือไม่นั้นขึ้นอยู่กับความสามารถในการเขียน Code ครับ
Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Tue Nov 27, 2012 1:22 pm
by bank9597

ลองดูโค๊ดนี้ครับ ว่าได้หรือไม่
Sub Click_send_data_book1()
Dim intRows As Long
Dim n As Range, sn As Range
Dim ws As Workbooks
Set ws = "d:\work_001\Book2.xls"
intRows = Rows.Count
With ws.Worksheets("Sheet1")
Set n = .Range("A" & intRows).End(xlUp).Offset(1, 0)
End With
Set sn = Sheets("sheet1").Range("b1:d1")
sn.Copy
n.PasteSpecial xlPasteValues
Application.CutCopyMode = False
MsgBox "ä´éÃѺ¢éÍÁÙÅáÅéÇ"
End Sub
Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Tue Nov 27, 2012 1:48 pm
by sdmania
ผมทำแล้วเกิด error ครับ
Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Tue Nov 27, 2012 1:49 pm
by sdmania
ที่อยู่ของ book2 ซึ่งเป็นไฟล์ที่เอาไว้รับข้อมูล ครับ
Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Tue Nov 27, 2012 1:51 pm
by sdmania
อันนี้ไฟล์ book1 ที่ผมลองแก้ code ตามครับ
Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Tue Nov 27, 2012 3:23 pm
by bank9597
sdmania wrote:อันนี้ไฟล์ book1 ที่ผมลองแก้ code ตามครับ

ผมลองดูที่ผมเคยทำมา ก็ระบุที่อยู่แบบนั้นไปก็ไม่มีปัญหาอะไร แต่พอมาทำบนไฟล์ของคุณแล้วมันไม่ได้ เลยต้องขอเวลาดูอีกหน่อยครับ
Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Wed Nov 28, 2012 12:18 am
by bank9597

ลองปรับโค๊ดเป็นดังนี้ครับ
Code: Select all
Sub Click_send_data_book1()
Dim intRows As Long
Dim n As Range, sn As Range
intRows = Rows.Count
With Workbooks("Book2.xls").Worksheets("Sheet2")
Set n = .Range("A" & intRows).End(xlUp).Offset(1, 0)
End With
With Workbooks("Book1.xls").Worksheets("Sheet1")
Set sn = .Range("b1:d1")
End With
sn.Copy
n.PasteSpecial xlPasteValues
Application.CutCopyMode = False
MsgBox "Êè§¢éÍÁÙÅáÅéÇ"
End Sub
ต้องเปิดไฟล์ทั้งสองเสมอครับ กรณีเปิดทั้งสองไฟลืไม่ว่าไฟล์จะอยู่ที่ไหน ก็ไม่มีปัญหาครับ เว้นแต่ไฟล์ปลายทางปิดอยู่ เราต้องระบุที่อยู่ของไฟล์ชัดเจน และเขียนโค๊ดไปในอีกแบบครับ
Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Wed Nov 28, 2012 1:06 pm
by sdmania
ยังไม่ได้ครับเกิด error
ผมลองลบไฟล์ แล้ว new ขึ้นใหม่จากนั้นก็ใส่code อันล่าสุดครับ
มันถามตอนให้เราเลือก ปุ่มมาโครครับซึ่งมีปุ่มเดียว ผมตอบว่า run เกี่ยวกับขึ้นตอนนี้ไหมครับ??
Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Wed Nov 28, 2012 1:42 pm
by snasui
sdmania wrote:ผมลองลบไฟล์ แล้ว new ขึ้นใหม่จากนั้นก็ใส่code อันล่าสุดครับ
ไฟล์ชื่ออะไรครับ ตรงกับใน Code หรือเปล่าครับ ลบแล้วชื่อต้นทางและปลายทางจะต้องสร้างให้เป็นชื่อเดิมครับ
ถ้าทุกอย่างเหมือนกันหมด ลองแนบไฟล์ทั้งสองมาดูครับ
Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Wed Nov 28, 2012 1:43 pm
by bank9597

งั้นลองดูตามไฟล์แนบครับ
Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Wed Nov 28, 2012 2:22 pm
by sdmania

ได้แล้วครับ
วันนี้ผมทำดังนี้ครับ
-ผมลบ Book1 ในโฟลเดอร์ E:\DATA_CHL_01 ออกก่อนครับ
-จากนั้น ก็ download ไฟล์ที่คุณแบงค์แนบไฟล์ให้มาล่าสุดครับ ไฟล์ book1.xls ครับ
- ผมเข้าไปแก้code นิดเดียวครับ ที่ว่า book2.xlsx เป็น book2.xls
*ขออนุญาตยกบรรทัดนี้มาครับ
--------------
With Workbooks("
Book2.xls").Worksheets("Sheet1")
-------------
ใช้ได้ทันทีเลยครับ
-จากนั้นผมลอง cut ไฟล์ book2 ไปไว้ในโฟลเดอร์อื่น ก็ยังสามารถส่งข้อมูลจาก book1 ไป book2 ได้ครับผม
ทั้งหมดอยู่ในเงื่อนไขเดิม คือต้องเปิดทั้งสองไฟล์เอาไว้ครับ
ขอขอบคุณทั้งสองท่าน อาจารย์ และคุณ bank มากครับผม

Re: ขอวิธีส่งข้อมูลข้าม workbook ครับ
Posted: Wed Nov 28, 2012 2:28 pm
by bank9597

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