: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

การเรียกข้อมูลมาแก้ไข

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
sakajohn
Member
Member
Posts: 229
Joined: Tue Aug 06, 2013 10:55 am
Excel Ver: 2010

การเรียกข้อมูลมาแก้ไข

#1

Post by sakajohn »

ขอรบกวนสอบถามปัญหาครับ คือ ผมมี Sheet 3 แผ่น 1. Sheet Entry ไว้สำหรับกรอกข้อมูลต่างๆ เมื่อกรอกครบ ก็คลิ๊กที่ปุ่มบันทึกข้อมูล โดยมีข้อแม้ว่า เลข JINMAO CODE ต้องไม่ซ๊ำกัน เมื่อบันทึกแล้วข้อมูลจะไปอยู่ใน Sheet Data โดยเรียงลำดับลงมาเรื่อยๆ 2. Sheet EDIT เอาไว้สำหรับ เรียกข้อมูลที่อยู่ใน Sheet DATA ขึ้นมาแก้ไข ความต้องการของผมคือ 1. ถ้าข้อมูลที่แก้ไขมี JINMAO CODE เหมือนเดิมก็ให้บันทึกลงไปในSheet DATA ที่ตำแหน่งเดิม(ทับลงไปได้) 2. ถ้า JINMAO CODE มีการแก้ไขใหม่ ให้บันทึกใน Sheet DATA โดยให้ข้อมูลต่อลงมาในบรรทัดถัดไป ผมใช้Vlookup ในการเรียกข้อมูล แต่พอไปแก้ไขรายละเอียด มันก็จะลบสูตรไปด้วย เลยขอรบกวนช่วยแนะนำวิธีด้วยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31258
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเรียกข้อมูลมาแก้ไข

#2

Post by snasui »

:D Code ที่เขียนมาเองแล้วนั้นอยู่ใน Module ใด ติดขัดบรรทัดใด ช่วยแจ้งมาด้วยทุกครั้งจะได้เข้าถึงปัญหาได้โดยไวครับ
sakajohn
Member
Member
Posts: 229
Joined: Tue Aug 06, 2013 10:55 am
Excel Ver: 2010

Re: การเรียกข้อมูลมาแก้ไข

#3

Post by sakajohn »

snasui wrote::D Code ที่เขียนมาเองแล้วนั้นอยู่ใน Module ใด ติดขัดบรรทัดใด ช่วยแจ้งมาด้วยทุกครั้งจะได้เข้าถึงปัญหาได้โดยไวครับ
ตอนนี้ผมลองปรับใหม่ครับ โดยในSheet EDIT ผมเพิ่มตารางขึ้นมาทางขวามือโดยใช้สูตร Vlookup ให้ดึงข้อมูลมาก่อน จากนั้นเขียนMACRO ใน Module 9 โดยให้ COPY และ PASTE ค่าจากตารางทางขวามือไปลงตามช่องที่กำหนดทางซ้ายมือ จากนั้นเราสามารถแก้ไขข้อมูลต่างๆได้ แต่มีข้อกำหนดคือ ค่า JINMAO CODE ต้องไม่ซ๊ำกัน พอกดปุ่มบันทึกข้อมูล ค่าก็จะบันทึกลงใน SHEET DATA ต่อท้ายไปเรื่อยๆ แล้วก็ให้ Clear ข้อมูลในตารางซ้ายมือ ตอนนี้ใช้ได้แต่ผมรู้สึกว่ามันยังไม่ดีครับ ผมยังต้องการว่าถ้า Jinmao CODE ซ๊ำกันก็ให้บันทึกทับลงไปตรงจุดเดิมได้ด้วยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31258
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเรียกข้อมูลมาแก้ไข

#4

Post by snasui »

:D ช่วยเขียนตำแหน่งเซลล์ที่จะนำไปวางใน Form ด้านซ้ายกำกับไว้ในคอลัมน์ R ของชีต EDIT ด้วยเพื่อสะดวกในการเขียน Code ครับ

ยกตัวอย่าง
ที่ R5 คีย์ G3
ที่ R6 คีย์ K3

เป็นต้น

จากนั้นแนบไฟล์กลับมาอีกครั้งครับ
sakajohn
Member
Member
Posts: 229
Joined: Tue Aug 06, 2013 10:55 am
Excel Ver: 2010

Re: การเรียกข้อมูลมาแก้ไข

#5

Post by sakajohn »

snasui wrote::D ช่วยเขียนตำแหน่งเซลล์ที่จะนำไปวางใน Form ด้านซ้ายกำกับไว้ในคอลัมน์ R ของชีต EDIT ด้วยเพื่อสะดวกในการเขียน Code ครับ

ยกตัวอย่าง
ที่ R5 คีย์ G3
ที่ R6 คีย์ K3

เป็นต้น

จากนั้นแนบไฟล์กลับมาอีกครั้งครับ
ผมแนบไฟล์มาใหม่แล้วครับ โดยกำหนดว่าแต่ละค่าจะให้ไปวางไว้ที่ไหนครับ ขอบคุณมากครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31258
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเรียกข้อมูลมาแก้ไข

#6

Post by snasui »

:D ตัวอย่าง Code เมื่อนำข้อมูลไปวางใน Form ครับ

Code: Select all

Dim rall As Range
Dim r As Range
With Sheets("EDIT")
    Set rall = .Range("t3", .Range("t" & .Rows.Count).End(xlUp))
    For Each r In rall
        If r.Value <> "" Then
            .Range(r.Value).Value = r.Offset(0, -3).Value
        End If
    Next r
End With
ตัวอย่าง Code เมื่อนำข้อมูลจาก Form กลับไปวางในชีต Data

Code: Select all

Dim rall As Range
Dim r As Range
Dim numRow As Long
With Sheets("EDIT")
    Set rall = .Range("t3", .Range("t" & .Rows.Count).End(xlUp))
    For Each r In rall
        If r.Value <> "" Then
            r.Offset(0, 1).Value = .Range(r.Value).Value
        End If
    Next r
    rall.Offset(0, 1).Copy
    If Application.CountIf(Sheets("data").Range("a:a"), .Range("c3").Value) > 0 Then
        numRow = Application.Match(.Range("c3").Value, Sheets("Data").Range("a:a"), 0) - 1
        Sheets("Data").Range("a" & numRow).PasteSpecial Paste:=xlPasteValues, Transpose:=True
    Else
        Sheets("Data").Range("a" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, _
            Transpose:=True
    End If
End With
กรณีไม่ตรงช่องให้ลองจัดช่องในชีต EDIT คอลัมน์ P:T เสียใหม่ครับ
sakajohn
Member
Member
Posts: 229
Joined: Tue Aug 06, 2013 10:55 am
Excel Ver: 2010

Re: การเรียกข้อมูลมาแก้ไข

#7

Post by sakajohn »

snasui wrote::D ตัวอย่าง Code เมื่อนำข้อมูลไปวางใน Form ครับ

Code: Select all

Dim rall As Range
Dim r As Range
With Sheets("EDIT")
    Set rall = .Range("t3", .Range("t" & .Rows.Count).End(xlUp))
    For Each r In rall
        If r.Value <> "" Then
            .Range(r.Value).Value = r.Offset(0, -3).Value
        End If
    Next r
End With
ตัวอย่าง Code เมื่อนำข้อมูลจาก Form กลับไปวางในชีต Data

Code: Select all

Dim rall As Range
Dim r As Range
Dim numRow As Long
With Sheets("EDIT")
    Set rall = .Range("t3", .Range("t" & .Rows.Count).End(xlUp))
    For Each r In rall
        If r.Value <> "" Then
            r.Offset(0, 1).Value = .Range(r.Value).Value
        End If
    Next r
    rall.Offset(0, 1).Copy
    If Application.CountIf(Sheets("data").Range("a:a"), .Range("c3").Value) > 0 Then
        numRow = Application.Match(.Range("c3").Value, Sheets("Data").Range("a:a"), 0) - 1
        Sheets("Data").Range("a" & numRow).PasteSpecial Paste:=xlPasteValues, Transpose:=True
    Else
        Sheets("Data").Range("a" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, _
            Transpose:=True
    End If
End With
กรณีไม่ตรงช่องให้ลองจัดช่องในชีต EDIT คอลัมน์ P:T เสียใหม่ครับ
อาจารย์ครับ ผมขอสอบถามครับ CODE ที่อาจารย์ให้มาใหม่ผมต้องเอาไปใส่ที่ตรงไหนครับ รบกวนขอความรู้เพิ่มเติมด้วยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31258
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเรียกข้อมูลมาแก้ไข

#8

Post by snasui »

:D ผมเขียนแจ้งไว้เรียบร้อยแล้วว่า Code ใดทำงานอะไร เดิมเขียนไว้เช่นไรก็ให้แทนด้วย Code นี้

ผมไม่ได้เขียน Sub และ End Sub ไปให้แสดงว่าให้เอาไปไว้ใน Sub เดิมได้เลย หากยังไม่มีก็ต้องสร้างขึ้นมาเองใหม่ จะใช้ชื่อใดก็แล้วแต่สะดวก

การจะนำ Code ไปวางต้องทำเองให้เป็น ไม่เช่นนั้นยังไม่ควรใช้ Code ครับ
Post Reply