Page 1 of 1

อยากวางข้อมูลให้พอดี

Posted: Thu Apr 21, 2011 2:49 pm
by godman
คือผมนำส่วนนี้ไปปรับใช้ แต่ปัญหาคือ ผม fix จำนวน rows ไว้ที่ A2:X91 แต่การใช้งานจริงมันไม่จำเป็นต้องใช้เท่านั้นคงที่
ผมเคยรู้ว่า เราสามารถบอกจำนวนแถว ให้มันทราบได้ ผมสมมุติว่า ผมเอาไว้ที่ช่อง M43 เป็นช่องที่กำหนดจำนวนแถว เช่น 60 หาจาก count ไม่ทราบว่าผมต้องเปลี่ยนแปลง macro นี้อย่างไรครับ
Sub PasteDataToDatabaseGRR()
Dim rSource As Range
Dim rTarget As Range
Set rSource = Worksheets("Template2").Range("A2:X91")
Set rTarget = Workbooks("NormalGRR.xls").Worksheets("Database").Range("A65536").End(xlUp).Offset(1, 0)
Application.ScreenUpdating = False
rSource.Copy
rTarget.PasteSpecial xlPasteValues
MsgBox "Record Complete"
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Re: อยากวางข้อมูลให้พอดี

Posted: Thu Apr 21, 2011 2:59 pm
by snasui
สามารถปรับ Code เป็นตามด้านล่างเพื่อให้ rSource ยืดหยุ่นตามปริมาณข้อมูลครับ

Code: Select all

Sub PasteDataToDatabaseGRR()
Dim rSource As Range
Dim rTarget As Range
Set rSource = Worksheets("Template2").Range("A2", Range("X65536").End(xlUp))
Set rTarget = Workbooks("NormalGRR.xls").Worksheets("Database").Range("A65536").End(xlUp).Offset(1, 0)
Application.ScreenUpdating = False
rSource.Copy
rTarget.PasteSpecial xlPasteValues
MsgBox "Record Complete"
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Re: อยากวางข้อมูลให้พอดี

Posted: Thu Apr 21, 2011 4:10 pm
by godman
มันขึ้นว่า 400 ครับแล้ว error ประเภทนี้เกิดจากอะไรครับ

Re: อยากวางข้อมูลให้พอดี

Posted: Thu Apr 21, 2011 4:30 pm
by snasui
ลองเข้าไปที่หน้าต่าง VBE แล้วเลือก Code ที่จะ Run กดแป้น F8 ซ้ำ ๆ เพื่อ Run Code ทีละบรรทัด จากนั้นสังเกตว่าเกิด Error ที่บรรทัดใดครับ

Re: อยากวางข้อมูลให้พอดี

Posted: Thu Apr 21, 2011 5:01 pm
by godman
มันขึ้น Debug สีหลืองตรง Set rSource = Worksheets("Template2").Range("A2", Range("X65536").End(xlUp)) ครับซีงต้นทางผมก็ใช้ชื่อว่า Template2 แล้วครับ

Re: อยากวางข้อมูลให้พอดี

Posted: Thu Apr 21, 2011 5:07 pm
by snasui
:D ลองเปลี่ยนตามนี้ดูครับ

With Worksheets("Template2")
Set rSource = .Range("A2", .Range("X65536").End(xlUp))
End With