: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

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
brakubra
Member
Member
Posts: 19
Joined: Fri Dec 13, 2013 1:42 pm

สร้างปุ่ม แก้ไขข้อมูลใน Excel

#1

Post by brakubra »

รบกวนอาจารย์ทุกท่าน

ผมอยากจะทำการแก้ไขข้อมูลข้าม Sheet จากไฟล์ตัวอย่างในSheet Input ที่
Repair Record.xlsm
แก้ไขข้อมูลเครื่อง ผมต้องการแก้ไข Computermodel ตามที่ต้องการและกดปุ่ม แก้ไขข้อมูล computermodel ที่ผมได้พิมพ์ลงไปก็จะไปบันทึกว่าที่ Sheet 1 คอลัม D ครับ

ตัวอย่าง ผมต้องการแก้ไขCOMPUTER MODEL ของเครื่อง LOCATION คือ FINANCE และ POSITION คือ FINANCE CONTROLLER และแก้ไข madel computer เครื่องเก่าจะเป็น SVOA INSPIRE INS-760XXX-601 ให้เป็น MAC Probook โดยการกดปุ่ม แก้ไขข้อมูล ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel

#2

Post by snasui »

:D Code ที่เขียนมาแล้วอยู่ที่ Module ไหน ชื่อว่าอะไร ติดขัดบรรทัดใดครับ
brakubra
Member
Member
Posts: 19
Joined: Fri Dec 13, 2013 1:42 pm

Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel

#3

Post by brakubra »

snasui wrote::D Code ที่เขียนมาแล้วอยู่ที่ Module ไหน ชื่อว่าอะไร ติดขัดบรรทัดใดครับ
เรียนอาจารย์ snasui

ผมยังไม่ได้เขียนโค็ดเลยครับ โค้ดที่เป็นการบันทึกผมก็ไปก็อบเขามาครับ

อาจารย์มีเว็ปหรือโค้ดอะไรแนะนำในการบันทึกข้อมูลแบบที่ค้นหาข้อมูลที่มีอยู่แล้ว แล้วก็บันทึกทับลงไปเลยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel

#4

Post by snasui »

:D ลองดูตัวอย่างหนึ่งตาม Link นี้ครับ viewtopic.php?f=3&t=1568
brakubra
Member
Member
Posts: 19
Joined: Fri Dec 13, 2013 1:42 pm

Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel

#5

Post by brakubra »

snasui wrote:snasui
เรียนอาจารย์ snasui

ใน Sheet Input ในส่วนแก้ไขข้อมูลเครื่อง ผมต้องการเอา เมนู Position คือ FINANCE CONTROLLER นำไปค้นหาใน Sheet1 ถ้าตรงกันให้ Copy เมนู COMPUTER MODEL ไปว่างแทนที่ COMPUTER MODEL ตัวเก่า ในSheet1
เมื่อผมคลิกปุ่มแก้ไข แล้วจะcopyใน Sheet1 แต่มันจะcopyไม่ต้องตำแหนงที่ต้องการครับ

รบกวนอาจารย์ช่วยดูโค้ดให้ด้วยครับ

ไฟล์ครับ
Repair Record.xlsm
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel

#6

Post by snasui »

:D ตัวอย่าง Code ลองปรับใช้ดูครับ

Code: Select all

Sub Edit()
    Dim ValForFind As String
    Dim r As Range
    Dim i As Integer
    ValForFind = Sheets("Input").Range("b8").Value
    Set r = Sheets("Sheet1").Columns("d:d").Find(ValForFind, LookIn:=xlValues)
    If r Is Nothing Then
        MsgBox "Not found"
        Exit Sub
    Else
        i = r.Address
    End If
    Worksheets("input").Range("c8").Copy
    Worksheets("Sheet1").Range("D" & i).PasteSpecial xlPasteValues, Transpose:=True
    Application.CutCopyMode = False
    MsgBox "Update data has finished."
End Sub
brakubra
Member
Member
Posts: 19
Joined: Fri Dec 13, 2013 1:42 pm

Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel

#7

Post by brakubra »

snasui wrote::D ตัวอย่าง Code ลองปรับใช้ดูครับ

Code: Select all

Sub Edit()
    Dim ValForFind As String
    Dim r As Range
    Dim i As Integer
    ValForFind = Sheets("Input").Range("b8").Value
    Set r = Sheets("Sheet1").Columns("d:d").Find(ValForFind, LookIn:=xlValues)
    If r Is Nothing Then
        MsgBox "Not found"
        Exit Sub
    Else
        i = r.Address
    End If
    Worksheets("input").Range("c8").Copy
    Worksheets("Sheet1").Range("D" & i).PasteSpecial xlPasteValues, Transpose:=True
    Application.CutCopyMode = False
    MsgBox "Update data has finished."
End Sub

อาจารย์ snasui
รบกวนอธิบายโค้ดให้ผมด้วยได้ไหมครับ
ขอบคุณมากครับอาจารย์
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel

#8

Post by snasui »

:D ควรยกมาถามเฉพาะส่วนที่ไม่เข้าใจครับ
brakubra
Member
Member
Posts: 19
Joined: Fri Dec 13, 2013 1:42 pm

Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel

#9

Post by brakubra »

snasui wrote::D ควรยกมาถามเฉพาะส่วนที่ไม่เข้าใจครับ

Sub Edit()
Dim ValForFind As String
Dim r As Range
Dim i As Integer
ValForFind = Sheets("Input").Range("b8").Value8
Set r = Sheets("Sheet1").Columns("d:d").Find(ValForFind, LookIn:=xlValues) //ผมไม่เข้าใจตรงส่วนนี้ครับคำสั่ง Set r คืออะไร
If r Is Nothing Then
MsgBox "Not found"
Exit Sub
Else
i = r.Address // i มันเก็บค่าอะไรและ r.address มีไว้ทำไมครับ
End If
Worksheets("input").Range("c8").Copy
Worksheets("Sheet1").Range("D" & i).PasteSpecial xlPasteValues, Transpose:=True // .Range("D" & i) ค่าของอะไรครับ
Application.CutCopyMode = False
MsgBox "Update data has finished."
End Sub

รบกวนด้วยครับอาจารย์
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel

#10

Post by snasui »

brakubra wrote:Set r = Sheets("Sheet1").Columns("d:d").Find(ValForFind, LookIn:=xlValues) //ผมไม่เข้าใจตรงส่วนนี้ครับคำสั่ง Set r คืออะไร
เป็นการ Assign เซลล์ที่ค้นพบค่าตัวแปร ValForFind ให้เป็น Range
brakubra wrote:i = r.Address // i มันเก็บค่าอะไรและ r.address มีไว้ทำไมครับ
Code นี้ผมเขียนผิด จริง ๆ ต้องการจะเขียนเป็นi = r.Row ซึ่งหมายถึงให้ตัวแปร i มีค่าเท่ากับบรรทัดของตัวแปร r ส่วน r.address หมายถึงตำแหน่งของตัวแปร r เช่น $D$20 เช่นนี้เป็นต้น
brakubra wrote:.Range("D" & i) ค่าของอะไรครับ
เมื่อ i คือค่าบรรทัด .range("d" & i) จึงหมายถึงคอลัมน์ D บรรทัดที่เป็นค่าของ i ครับ
brakubra
Member
Member
Posts: 19
Joined: Fri Dec 13, 2013 1:42 pm

Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel

#11

Post by brakubra »

snasui wrote:
brakubra wrote:Set r = Sheets("Sheet1").Columns("d:d").Find(ValForFind, LookIn:=xlValues) //ผมไม่เข้าใจตรงส่วนนี้ครับคำสั่ง Set r คืออะไร
เป็นการ Assign เซลล์ที่ค้นพบค่าตัวแปร ValForFind ให้เป็น Range
brakubra wrote:i = r.Address // i มันเก็บค่าอะไรและ r.address มีไว้ทำไมครับ
Code นี้ผมเขียนผิด จริง ๆ ต้องการจะเขียนเป็นi = r.Row ซึ่งหมายถึงให้ตัวแปร i มีค่าเท่ากับบรรทัดของตัวแปร r ส่วน r.address หมายถึงตำแหน่งของตัวแปร r เช่น $D$20 เช่นนี้เป็นต้น
brakubra wrote:.Range("D" & i) ค่าของอะไรครับ
เมื่อ i คือค่าบรรทัด .range("d" & i) จึงหมายถึงคอลัมน์ D บรรทัดที่เป็นค่าของ i ครับ
ขอบพระคุณมากครับอาจารย์สำเร็จแล้วครับ :cp: :cp:
Post Reply