Page 1 of 1
สร้างปุ่ม แก้ไขข้อมูลใน Excel
Posted: Wed Dec 25, 2013 12:10 pm
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 โดยการกดปุ่ม แก้ไขข้อมูล ครับ
Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel
Posted: Wed Dec 25, 2013 7:27 pm
by snasui
Code ที่เขียนมาแล้วอยู่ที่ Module ไหน ชื่อว่าอะไร ติดขัดบรรทัดใดครับ
Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel
Posted: Mon Dec 30, 2013 3:28 pm
by brakubra
snasui wrote: Code ที่เขียนมาแล้วอยู่ที่ Module ไหน ชื่อว่าอะไร ติดขัดบรรทัดใดครับ
เรียนอาจารย์ snasui
ผมยังไม่ได้เขียนโค็ดเลยครับ โค้ดที่เป็นการบันทึกผมก็ไปก็อบเขามาครับ
อาจารย์มีเว็ปหรือโค้ดอะไรแนะนำในการบันทึกข้อมูลแบบที่ค้นหาข้อมูลที่มีอยู่แล้ว แล้วก็บันทึกทับลงไปเลยครับ
Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel
Posted: Mon Dec 30, 2013 3:46 pm
by snasui
ลองดูตัวอย่างหนึ่งตาม Link นี้ครับ
viewtopic.php?f=3&t=1568
Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel
Posted: Wed Jan 08, 2014 3:17 pm
by brakubra
snasui wrote:snasui
เรียนอาจารย์ snasui
ใน Sheet Input ในส่วนแก้ไขข้อมูลเครื่อง ผมต้องการเอา เมนู Position คือ FINANCE CONTROLLER นำไปค้นหาใน Sheet1 ถ้าตรงกันให้ Copy เมนู COMPUTER MODEL ไปว่างแทนที่ COMPUTER MODEL ตัวเก่า ในSheet1
เมื่อผมคลิกปุ่มแก้ไข แล้วจะcopyใน Sheet1 แต่มันจะcopyไม่ต้องตำแหนงที่ต้องการครับ
รบกวนอาจารย์ช่วยดูโค้ดให้ด้วยครับ
ไฟล์ครับ
Repair Record.xlsm
Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel
Posted: Wed Jan 08, 2014 11:41 pm
by snasui
ตัวอย่าง 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
Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel
Posted: Thu Jan 09, 2014 4:48 pm
by brakubra
snasui wrote: ตัวอย่าง 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
รบกวนอธิบายโค้ดให้ผมด้วยได้ไหมครับ
ขอบคุณมากครับอาจารย์
Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel
Posted: Thu Jan 09, 2014 4:50 pm
by snasui
ควรยกมาถามเฉพาะส่วนที่ไม่เข้าใจครับ
Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel
Posted: Thu Jan 09, 2014 5:22 pm
by brakubra
snasui wrote: ควรยกมาถามเฉพาะส่วนที่ไม่เข้าใจครับ
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
รบกวนด้วยครับอาจารย์
Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel
Posted: Thu Jan 09, 2014 9:07 pm
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 ครับ
Re: สร้างปุ่ม แก้ไขข้อมูลใน Excel
Posted: Fri Jan 10, 2014 9:14 am
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 ครับ
ขอบพระคุณมากครับอาจารย์สำเร็จแล้วครับ