Page 1 of 1

ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Sun Dec 15, 2013 3:25 pm
by mr.zatan
แก้ VBA ให้หน่อยครับ...

คือ Code นี้มันจะ Copy ข้อมูลจาก Sheet1 มาใส่ที่ Sheet2

ที่ต้องการคือ อยากจะส่งข้อมูลจาก Sheet 2 >>> ไปใส่ Sheet1


Code: Select all

Sub add()


Dim LastRow As Long

Dim NextRow As Long



Worksheets("Sheet1").Activate

Range("B65536").Select

ActiveCell.End(xlUp).Select

LastRow = ActiveCell.Row



Range("$A$1:$BC$91" & LastRow).Copy



Worksheets("Sheet2").Activate

Range("C65536").Select

ActiveCell.End(xlUp).Offset(1, 0).Select

NextRow = ActiveCell.Row


Worksheets("Sheet2").Range("a" & NextRow).Select

ActiveSheet.Paste

Application.CutCopyMode = False



Range("A1").Select

MsgBox "ส่งข้อมูลเรียบร้อย"

End Sub

Re: ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Sun Dec 15, 2013 4:20 pm
by snasui
:shock: ถ้าเขียนให้ Copy จาก Sheet1 ไป Sheet2 ได้ ก็ไม่น่าที่จะเขียนให้ Copy ในทางกลับกันไม่ได้

Code นี้เขียนเองหรือไม่ ไม่ทราบ่ว่าติดปัญหาใดจึงทำไม่ได้ครับ :?:

Re: ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Sun Dec 15, 2013 5:26 pm
by mr.zatan
ไม่ได้เขียนเองครับ...ผมไม่ได้เก่งขนาดเขียนเองได้เหรอกครับ....

ช่วยแก้ให้หน่อยครับ..

Re: ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Sun Dec 15, 2013 5:35 pm
by snasui
:D ลองปรับ Sheet1 เป็น Sheet2 และปรับ Sheet2 เป็น Sheet1 ครับ

ไม่ได้เขียนเองก็ควรปรับมาเองก่อน การใช้ VBA ต้องปรับเองเป็นบ้างครับ

Re: ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Sun Dec 15, 2013 5:56 pm
by mr.zatan
ถามผิดครับ...โทษที... :D



คือว่า Sheet1 Sheet2 มีอะไรที่ใช้แทนชื่อ Sheet ได้มัยครับ เช่น ลำดับของ sheet

เพราะว่า อย่างเช่น ผมจะส่งข้อมูลจาก Sheet 2 ไปที่ Sheet1

ปัญหาคือ ที่ Sheet2 ต้องเปลี่ยนชื่อ Sheet ไปเรื่อยๆๆ

Re: ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Sun Dec 15, 2013 5:59 pm
by snasui
:D สามารถใช้ตัวแปรหรือ Index เข้ามาช่วยได้ครับ

สำหรับ VBA แล้วข้อจำกัดหลักอยู่ที่ผู้ใช้ ไม่ใช่อยู่ที่ VBA ครับ :mrgreen:

Re: ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Sun Dec 15, 2013 6:01 pm
by mr.zatan
ขอตัวอย่างหน่อยครับ....

Re: ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Sun Dec 15, 2013 6:03 pm
by snasui
:D ตัวอย่างการใช้ Index ครับ http://msdn.microsoft.com/en-us/library ... e.11).aspx

Re: ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Sun Dec 15, 2013 6:15 pm
by mr.zatan
ใช้ Sheets(2).Activate แทน Worksheets("Sheet2").Activate แบบนี้ถูกมัยครับ

Re: ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Sun Dec 15, 2013 6:47 pm
by mr.zatan
จะแก้ยังไงครับ...

คือตอนนี้มันจะเพิ่มบรรทัดไปเรื่อย.....คืออยากให้ทับของเดิมไปเลย ไม่อยากให้ขึ้นบรรทัดใหม่

Re: ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Sun Dec 15, 2013 7:36 pm
by snasui
:D Code สำหรับหาบรรทัดถัดไปคือ ActiveCell.End(xlUp).Offset(1, 0).Select หากต้องการให้อยู่ตำแหน่งเดิมให้ปรับเป็น

ActiveCell.End(xlUp).Select

Re: ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Sun Dec 15, 2013 7:54 pm
by mr.zatan
เหมือนเดิมครับ เพิ่มเหมือนเดิม

ผมว่าน่าจะต้องแก้บรรทัดนี้รึเปล่าว


NextRow = ActiveCell.Row


Worksheets("Sheet2").Range("a" & NextRow).Select

Re: ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Sun Dec 15, 2013 8:14 pm
by snasui
:D ผมยืนยันว่าการกำหนดบรรทัดถัดไปคือ ActiveCell.End(xlUp).Offset(1, 0).Select ครับ

ที่บอกว่าไม่ได้นั้นควรส่งไฟล์ตัวอย่างมาด้วยจะได้เห็นว่าได้แก้ Code เป็นอย่างไรครับ

Re: ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Sun Dec 15, 2013 9:09 pm
by mr.zatan
ตามไฟล์แนบครับ...

Re: ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Mon Dec 16, 2013 11:04 am
by snasui
:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Sub add()
    Sheets(2).Activate
    Range("A4:V19").Select
    Selection.Copy
    Sheets(1).Activate
    Range("A1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("A1").Select
    MsgBox "เพิ่มข้อมูลเรียบร้อย.."
End Sub

Re: ส่งข้อมูล จาก Sheet นึง ไปอีก Sheet นึง.....

Posted: Mon Dec 16, 2013 11:58 am
by mr.zatan
ขอบคุณครับ....สั้นๆๆได้ใจความดี