:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิม

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
voravit
Member
Member
Posts: 38
Joined: Sun Mar 27, 2011 2:53 pm

เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิม

#1

Post by voravit »

เรียน : อาจารย์ ที่นับถือ
ผมขอเรียนสอบถาม การปรับแก้ เงื่อนไข การบันทึก แมโคร และ/หรือ การ เขียน Code เพื่อ
1. แก้ไข ฟังก์ชั่น OFFSET ส่งข้อมูลไปแล้ว ข้อมูลที่บันทึกใหม่ ไปบันทึกซ้ำ รายการเดิมที่บันทึกก่อนหน้าไปแล้ว
2. การ ระบุเงื่อนไข Copy และ Paste เพื่อให้ได้เฉพาะ ข้อความ ตัวเลข กรอบตาราง แต่ไม่ต้องการให้ สูตร หรือ รูปแบบ เช่น Drop Down List ติดมาด้วย
3. วิธี บันทึก แมโคร หรือ เขียน Code เพื่อกลับไปยังหน้ารายงาน เพื่อทำการแก้ไข เมื่อแก้ไขเสร็จก็ให้กลับไปหน้าแรก
และ ตาม ไฟล์ แนบครับ
ขอขอบคุณ อาจารย์เป็นอย่างสูงครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30758
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

#2

Post by snasui »

:D ทั้ง 3 ข้อที่กล่าวมา Macro อยู่ใน Module ไหน มีชื่อว่าอะไร

Macro แต่ละตัวติดขัดที่บรรทัดใด ช่วยแจ้งมาด้วยครับ
voravit
Member
Member
Posts: 38
Joined: Sun Mar 27, 2011 2:53 pm

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

#3

Post 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 กัน ครับ
ขอบคุณอาจารย์เป็นอย่างสูงครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30758
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

#4

Post by snasui »

:D ผมเข้าใจว่าปัญหาคือมีการ Copy Data Validation มาด้วย

วิธีการ Copy โดยไม่เอา Validation มาด้วยจะต้องไม่ Paste All ครับ

ลองตามด้านล่างครับ
  1. ลบ Validation ในชีท OrderRecord ออกไป
  2. ปรับปรุง 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
    
voravit
Member
Member
Posts: 38
Joined: Sun Mar 27, 2011 2:53 pm

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

#5

Post by voravit »

เรียน : อาจารย์ ที่นับถือ
ผมได้เอา Code ที่อาจารย์ แนะนำมาไปแก้ไข แล้ว ผลคือ ไม่มี Data Validation ติดมาตามที่ต้องการ เพียงแต่ ได้มาเฉพาะข้อมูล ขอบตารางหายไป ผมเลยเพิ่ม Code ลงไป อีก 1 บรรทัด คือ

Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ผลที่ออกมาครบทั้งข้อมูล และ ขอบตาราง
ผม อยากรบกวน อาจารย์ อีกรายการครับ คือ
ผมต้องเขียน Code อย่างไรเพื่อไปหน้า ที่ต้องการแก้ไข เมื่อทำการแก้ไขแล้วให้กลับไปหน้าแรกครับ
ขอบคุณเป็นอย่างสูงครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30758
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

#6

Post by snasui »

:D ในกระทู้ถามตอบงดถามเฉพาะบุคคลใดบุคคลหนึ่งครับ ให้ถามได้เลยไม่ต้องเรียนสมาชิกท่านใด หากสมาชิกท่านนั้นไม่ว่าง คุณจะเสียโอกาสที่จะได้รับคำตอบจากสมาชิกท่านอื่นครับ
voravit wrote:ผมต้องเขียน Code อย่างไรเพื่อไปหน้า ที่ต้องการแก้ไข เมื่อทำการแก้ไขแล้วให้กลับไปหน้าแรกครับ
หน้าที่ต้องการแก้ไขคือหน้าใด Code ทีเขียนไว้แล้วคืออะไร มีปัญหาใดครับ
voravit
Member
Member
Posts: 38
Joined: Sun Mar 27, 2011 2:53 pm

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

#7

Post by voravit »

เรียน อาจารย์ ที่นับถือ ครับ
หน้า รายงาน คำสั่งซื้อ คือ Sheet("OrderRecord") คือ เมื่อ Print Preview หน้านี้ ถ้าพบว่ามีรายการที่ต้องการ แก้ไข เพิ่มเตืม ก็ให้กลับไปหน้านี้
แล้วทำการ แก้ไข เพิ่มเติม เสร็จก็ให้กลับไปยังหน้าแรก คือ Sheet("MorderRecord") ครับ Code ที่ เขียน คือ

ActiveSheet.PrintPreview
ActiveCell.Select
MsgBox "กลับไปหน้าแรก เพื่อ ทำรายการต่อไป"
Sheets("MorderRecord").Select
ผลคือ หน้า "OrderRecord" ไม่เปิดขึ้นเพื่อให้ แก้ไข หรือ เพิ่มเติม เมื่อ คลิกปิดหน้า Print Preview แต่ กลับไปหน้าแรก คือ "MorderRecord" เลยครับ ต้อง เขียน Code อย่างไรครับ
ขอบคุณเป็นอย่างสูงครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30758
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

#8

Post by snasui »

voravit wrote:เรียน อาจารย์ ที่นับถือ ครับ
แก้ไขข้อความด้วยครับ :roll: :ard:
snasui wrote:ในกระทู้ถามตอบงดถามเฉพาะบุคคลใดบุคคลหนึ่งครับ ให้ถามได้เลยไม่ต้องเรียนสมาชิกท่านใด
voravit
Member
Member
Posts: 38
Joined: Sun Mar 27, 2011 2:53 pm

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

#9

Post by voravit »

หน้า รายงาน คำสั่งซื้อ คือ Sheet("OrderRecord") คือ เมื่อ Print Preview หน้านี้ ถ้าพบว่ามีรายการที่ต้องการ แก้ไข เพิ่มเตืม ก็ให้กลับไปหน้านี้
แล้วทำการ แก้ไข เพิ่มเติม เสร็จก็ให้กลับไปยังหน้าแรก คือ Sheet("MorderRecord") ครับ Code ที่ เขียน คือ

ActiveSheet.PrintPreview
ActiveCell.Select
MsgBox "กลับไปหน้าแรก เพื่อ ทำรายการต่อไป"
Sheets("MorderRecord").Select

ผลคือ หน้า "OrderRecord" ไม่เปิดขึ้นเพื่อให้ แก้ไข หรือ เพิ่มเติม เมื่อ คลิกปิดหน้า Print Preview แต่ กลับไปหน้าแรก คือ "MorderRecord" เลยครับ ต้อง เขียน Code อย่างไรครับ
ขอบคุณเป็นอย่างสูงครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30758
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

#10

Post by snasui »

:D หากต้องการให้กลับไปหน้า Sheet("OrderRecord") ก็ต้องเปลี่ยน Code Sheets("MorderRecord").Select เป็น Sheet("OrderRecord").Select และเมื่อแก้ไขแล้วหากต้องการให้ไปยังชีท MorderRecord สามารถทำ Hyperlink หรือสร้างปุ่มเพิ่มเพื่อให้คลิกแล้วไปยังชีท MorderRecord ครับ

การโพสต์ Code ให้แสดงเป็น Code ดูตัวอย่างที่นี่ครับ :arrow: viewtopic.php?f=3&t=1187
voravit
Member
Member
Posts: 38
Joined: Sun Mar 27, 2011 2:53 pm

Re: เรียนสอบถาม ฟังก์ชั่น OFFSET ส่งข้อมูลไปบันทึกซ้ำช่วงเดิ

#11

Post by voravit »

ปรับแก้ code ตามคำแนะนำ ได้แล้วครับ
ขอบคุณเป็นอย่างสูงครับ
Post Reply