Page 1 of 1
เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิม
Posted: Sun Mar 02, 2014 11:37 am
by voravit
เรียน : อาจารย์ ที่นับถือ
ผมขอเรียนสอบถาม การปรับแก้ เงื่อนไข การบันทึก แมโคร และ/หรือ การ เขียน Code เพื่อ
1. แก้ไข ฟังก์ชั่น OFFSET ส่งข้อมูลไปแล้ว ข้อมูลที่บันทึกใหม่ ไปบันทึกซ้ำ รายการเดิมที่บันทึกก่อนหน้าไปแล้ว
2. การ ระบุเงื่อนไข Copy และ Paste เพื่อให้ได้เฉพาะ ข้อความ ตัวเลข กรอบตาราง แต่ไม่ต้องการให้ สูตร หรือ รูปแบบ เช่น Drop Down List ติดมาด้วย
3. วิธี บันทึก แมโคร หรือ เขียน Code เพื่อกลับไปยังหน้ารายงาน เพื่อทำการแก้ไข เมื่อแก้ไขเสร็จก็ให้กลับไปหน้าแรก
และ ตาม ไฟล์ แนบครับ
ขอขอบคุณ อาจารย์เป็นอย่างสูงครับ
Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ
Posted: Sun Mar 02, 2014 11:57 am
by snasui

ทั้ง 3 ข้อที่กล่าวมา Macro อยู่ใน Module ไหน มีชื่อว่าอะไร
Macro แต่ละตัวติดขัดที่บรรทัดใด ช่วยแจ้งมาด้วยครับ
Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ
Posted: Sun Mar 02, 2014 12:29 pm
by voravit
เรียน : อาจารย์ ที่นับถือ ครับ
Module ที่ 16 ชื่อ AddOredrRecord ครับ
1. ปัญหาการ Copy และ Paste คือ บรรทัด ที่ 8 ถึง 15 ครับ (ผมนับ MsgBox อันที่หนึ่งเป็น บรรทัดแรกครับ)
2. Print Preview อยู่ บรรทัดที่ 16 ผมต้องการกลับไปหน้ารายงาน ใน ไฟล์นี้คือ Sheet "OrderRecord" หลังจากที่ดูจาก Print Preview แล้วพบว่ามีบางจุดต้องแก้ไข หรือ เพิ่มเติมครับ เมื่อแก้ไข และ บันทึก เรียบร้อย ก็ให้กลับไป หน้าแรก คือ Sheet"MorderRecord" ครับ
3. หลังจากที่ copy และ Past ได้ตามเงื่อนไขแล้ว จาก บรรทัด ที่ 15 ก่อนจะ Print Preview ผมต้อง บันทึก แมโคร อย่างไร เพื่อ ให้ เชลที่เลือก Merge กัน ครับ
ขอบคุณอาจารย์เป็นอย่างสูงครับ
Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ
Posted: Sun Mar 02, 2014 2:39 pm
by snasui

ผมเข้าใจว่าปัญหาคือมีการ Copy Data Validation มาด้วย
วิธีการ Copy โดยไม่เอา Validation มาด้วยจะต้องไม่ Paste All ครับ
ลองตามด้านล่างครับ
- ลบ Validation ในชีท OrderRecord ออกไป
- ปรับปรุง Code เป็นตามด้านล่าง
Code: Select all
Sub AddOrderRecod()
'
' AddOrderRecod Macro
'
' Keyboard Shortcut: Ctrl+Shift+A
'
MsgBox "â»Ã´µÃǨÊͺ¤ÇÒÁ¶Ù¡µéͧ¢Í§¢éÍÁÙÅ ¡è͹·Ó¡Òúѹ·Ö¡"
Application.Goto Reference:="MorderRecord"
Selection.Copy
Application.Goto Reference:="ulOrderRecord"
ActiveCell.Offset(3, 0).Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
ActiveSheet.PrintPreview
Sheets("OrderRecord").Select
Sheets("MorderRecord").Select
Range("C6:F14").Select
Selection.ClearContents
Range("B4").Select
End Sub
Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ
Posted: Sun Mar 02, 2014 4:17 pm
by voravit
เรียน : อาจารย์ ที่นับถือ
ผมได้เอา Code ที่อาจารย์ แนะนำมาไปแก้ไข แล้ว ผลคือ ไม่มี Data Validation ติดมาตามที่ต้องการ เพียงแต่ ได้มาเฉพาะข้อมูล ขอบตารางหายไป ผมเลยเพิ่ม Code ลงไป อีก 1 บรรทัด คือ
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ผลที่ออกมาครบทั้งข้อมูล และ ขอบตาราง
ผม อยากรบกวน อาจารย์ อีกรายการครับ คือ
ผมต้องเขียน Code อย่างไรเพื่อไปหน้า ที่ต้องการแก้ไข เมื่อทำการแก้ไขแล้วให้กลับไปหน้าแรกครับ
ขอบคุณเป็นอย่างสูงครับ
Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ
Posted: Sun Mar 02, 2014 5:03 pm
by snasui

ในกระทู้ถามตอบงดถามเฉพาะบุคคลใดบุคคลหนึ่งครับ ให้ถามได้เลยไม่ต้องเรียนสมาชิกท่านใด หากสมาชิกท่านนั้นไม่ว่าง คุณจะเสียโอกาสที่จะได้รับคำตอบจากสมาชิกท่านอื่นครับ
voravit wrote:ผมต้องเขียน Code อย่างไรเพื่อไปหน้า ที่ต้องการแก้ไข เมื่อทำการแก้ไขแล้วให้กลับไปหน้าแรกครับ
หน้าที่ต้องการแก้ไขคือหน้าใด Code ทีเขียนไว้แล้วคืออะไร มีปัญหาใดครับ
Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ
Posted: Sun Mar 02, 2014 5:35 pm
by voravit
เรียน อาจารย์ ที่นับถือ ครับ
หน้า รายงาน คำสั่งซื้อ คือ Sheet("OrderRecord") คือ เมื่อ Print Preview หน้านี้ ถ้าพบว่ามีรายการที่ต้องการ แก้ไข เพิ่มเตืม ก็ให้กลับไปหน้านี้
แล้วทำการ แก้ไข เพิ่มเติม เสร็จก็ให้กลับไปยังหน้าแรก คือ Sheet("MorderRecord") ครับ Code ที่ เขียน คือ
ActiveSheet.PrintPreview
ActiveCell.Select
MsgBox "กลับไปหน้าแรก เพื่อ ทำรายการต่อไป"
Sheets("MorderRecord").Select
ผลคือ หน้า "OrderRecord" ไม่เปิดขึ้นเพื่อให้ แก้ไข หรือ เพิ่มเติม เมื่อ คลิกปิดหน้า Print Preview แต่ กลับไปหน้าแรก คือ "MorderRecord" เลยครับ ต้อง เขียน Code อย่างไรครับ
ขอบคุณเป็นอย่างสูงครับ
Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ
Posted: Sun Mar 02, 2014 5:42 pm
by snasui
voravit wrote:เรียน อาจารย์ ที่นับถือ ครับ
แก้ไขข้อความด้วยครับ
snasui wrote:ในกระทู้ถามตอบงดถามเฉพาะบุคคลใดบุคคลหนึ่งครับ ให้ถามได้เลยไม่ต้องเรียนสมาชิกท่านใด
Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ
Posted: Sun Mar 02, 2014 6:00 pm
by voravit
หน้า รายงาน คำสั่งซื้อ คือ Sheet("OrderRecord") คือ เมื่อ Print Preview หน้านี้ ถ้าพบว่ามีรายการที่ต้องการ แก้ไข เพิ่มเตืม ก็ให้กลับไปหน้านี้
แล้วทำการ แก้ไข เพิ่มเติม เสร็จก็ให้กลับไปยังหน้าแรก คือ Sheet("MorderRecord") ครับ Code ที่ เขียน คือ
ActiveSheet.PrintPreview
ActiveCell.Select
MsgBox "กลับไปหน้าแรก เพื่อ ทำรายการต่อไป"
Sheets("MorderRecord").Select
ผลคือ หน้า "OrderRecord" ไม่เปิดขึ้นเพื่อให้ แก้ไข หรือ เพิ่มเติม เมื่อ คลิกปิดหน้า Print Preview แต่ กลับไปหน้าแรก คือ "MorderRecord" เลยครับ ต้อง เขียน Code อย่างไรครับ
ขอบคุณเป็นอย่างสูงครับ
Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ
Posted: Sun Mar 02, 2014 6:09 pm
by snasui

หากต้องการให้กลับไปหน้า Sheet("OrderRecord") ก็ต้องเปลี่ยน Code
Sheets("MorderRecord").Select เป็น
Sheet("OrderRecord").Select และเมื่อแก้ไขแล้วหากต้องการให้ไปยังชีท MorderRecord สามารถทำ Hyperlink หรือสร้างปุ่มเพิ่มเพื่อให้คลิกแล้วไปยังชีท MorderRecord ครับ
การโพสต์ Code ให้แสดงเป็น Code ดูตัวอย่างที่นี่ครับ
viewtopic.php?f=3&t=1187
Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ
Posted: Sun Mar 02, 2014 10:47 pm
by voravit
ปรับแก้ code ตามคำแนะนำ ได้แล้วครับ
ขอบคุณเป็นอย่างสูงครับ