Page 1 of 1
รบกวนอาจรย์ช่วยแก้ไขสูตรให้ด้วยค่ะ
Posted: Mon Apr 02, 2012 2:22 pm
by Amkung
เนื่องจากทำข้อมูลเกี่ยวกับ Warehouse ต้องการ Link ข้อมูลจากใบส่งวัสดุเข้าหน่วยงาน ไปที่ Sheet "Record" แต่ติดปัญหาตรงที่เมื่อบันทึกข้อมูลแล้ว ข้อมูลไม่วิ่งไปหาบรรทัดล่าสุด แต่กลับบันทึกทับข้อมูลเก่า รบกวนอาจารย์ดูสูตรให้ด้วยค่ะ
Re: รบกวนอาจรย์ช่วยแก้ไขสูตรให้ด้วยค่ะ
Posted: Mon Apr 02, 2012 4:19 pm
by snasui

ลองตามนี้ครับ
- เปลี่ยนสูตรที่กำหนดให้กับ Range Name ตามด้านล่าง
Formout =OFFSET(Formout!$A$14,0,0,COUNTIF(Formout!$A$14:$A$28,"?*"),23)
Record =OFFSET(Reference,COUNTA(Record!$A:$A)-2, 0, 1, 23)
- ปรับ Code เป็นตามด้านล่าง
Code: Select all
Sub CopyToAllData()
Application.Goto Reference:="Formout"
Selection.Copy
Application.Goto Reference:="Record"
Selection.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("A2").Select
Sheets("Formout").Select
Range("A14:W28").Select
Application.ScreenUpdating = True
'Clear the data
Range("Formout").Cells(14, 9).Value = ""
End Sub
ในคราวต่อไปควรแจ้งมาให้ทราบด้วยครับว่า Code ชื่ออะไร อยู่ใน Module ไหน เพื่อจะได้เข้าถึงข้อมูลโดยไวครับ
Re: รบกวนอาจรย์ช่วยแก้ไขสูตรให้ด้วยค่ะ
Posted: Mon Apr 02, 2012 4:39 pm
by Amkung
ขอบคุณอาจารย์มากๆ เลยนะคะ
และต้องขออภัยด้วย
พอดีหนูพึ่งหัดใช้ VBA กับ Excel ก็เลยยังงงกับการตั้งคำถาม
ขอโทษและขอบคุณอย่างสูงค่ะ
Re: รบกวนอาจรย์ช่วยแก้ไขสูตรให้ด้วยค่ะ
Posted: Tue Apr 03, 2012 9:41 am
by Amkung
อาจารย์คะ พอคลิกที่ปุ่ม Record แล้วขึ้นว่า
Run-time error '1004':
Reference is not Valid
พอคลิกที่ปุ้ม Debug
จะขึ้นแถบสีเหลืองที่สูตรบรรทัด
Application.Goto Reference:="Formout"
จะแก้ไขยังไงดีคะ
Re: รบกวนอาจรย์ช่วยแก้ไขสูตรให้ด้วยค่ะ
Posted: Tue Apr 03, 2012 9:51 am
by bank9597
หากเพิ่มโค๊ดเข้าไปอีกแบบนี้ จะถูกต้องไหม ลองดูครับ
Code: Select all
Sub CopyToAllData()
On Error Resume Next
Application.Goto Reference:="Formout"
Selection.Copy
Application.Goto Reference:="Record"
Selection.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("A2").Select
Sheets("Formout").Select
Range("A14:W28").Select
Application.ScreenUpdating = True
'Clear the data
Range("Formout").Cells(14, 9).Value = ""
End Sub
หากไม่ใช่ ขออภัยด้วยครับ

Re: รบกวนอาจรย์ช่วยแก้ไขสูตรให้ด้วยค่ะ
Posted: Tue Apr 03, 2012 10:47 am
by snasui
Amkung wrote:อาจารย์คะ พอคลิกที่ปุ่ม Record แล้วขึ้นว่า
Run-time error '1004':
Reference is not Valid
พอคลิกที่ปุ้ม Debug
จะขึ้นแถบสีเหลืองที่สูตรบรรทัด
Application.Goto Reference:="Formout"
จะแก้ไขยังไงดีคะ
เนื่องจากสูตรที่ให้ไว้กับ Range Name
ไม่ถูกต้องครับ ลองทบทวนด้านล่างนี้อีกรอบ
snasui wrote:ลองตามนี้ครับ
เปลี่ยนสูตรที่กำหนดให้กับ Range Name ตามด้านล่าง
Formout =OFFSET(Formout!$A$14,0,0,COUNTIF(Formout!$A$14:$A$28,"?*"),23)
Record =OFFSET(Reference,COUNTA(Record!$A:$A)-2, 0, 1, 23)
การแก้ไข ให้ลบเครื่องหมาย " ตามที่ลูกศรชี้ในภาพด้านล่างทิ้งไปครับ