EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)เรียนอาจารย์ snasuisnasui wrote: Code ที่เขียนมาแล้วอยู่ที่ Module ไหน ชื่อว่าอะไร ติดขัดบรรทัดใดครับ
เรียนอาจารย์ snasuisnasui wrote:snasui
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 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 wrote: ควรยกมาถามเฉพาะส่วนที่ไม่เข้าใจครับ
เป็นการ Assign เซลล์ที่ค้นพบค่าตัวแปร ValForFind ให้เป็น Rangebrakubra wrote:Set r = Sheets("Sheet1").Columns("d:d").Find(ValForFind, LookIn:=xlValues) //ผมไม่เข้าใจตรงส่วนนี้ครับคำสั่ง Set r คืออะไร
Code นี้ผมเขียนผิด จริง ๆ ต้องการจะเขียนเป็นbrakubra wrote:i = r.Address // i มันเก็บค่าอะไรและ r.address มีไว้ทำไมครับ
i = r.Row
ซึ่งหมายถึงให้ตัวแปร i มีค่าเท่ากับบรรทัดของตัวแปร r ส่วน r.address
หมายถึงตำแหน่งของตัวแปร r เช่น $D$20 เช่นนี้เป็นต้น
เมื่อ i คือค่าบรรทัด .range("d" & i) จึงหมายถึงคอลัมน์ D บรรทัดที่เป็นค่าของ i ครับbrakubra wrote:.Range("D" & i) ค่าของอะไรครับ
ขอบพระคุณมากครับอาจารย์สำเร็จแล้วครับsnasui wrote:เป็นการ Assign เซลล์ที่ค้นพบค่าตัวแปร ValForFind ให้เป็น Rangebrakubra wrote:Set r = Sheets("Sheet1").Columns("d:d").Find(ValForFind, LookIn:=xlValues) //ผมไม่เข้าใจตรงส่วนนี้ครับคำสั่ง Set r คืออะไรCode นี้ผมเขียนผิด จริง ๆ ต้องการจะเขียนเป็นbrakubra wrote:i = r.Address // i มันเก็บค่าอะไรและ r.address มีไว้ทำไมครับi = r.Row
ซึ่งหมายถึงให้ตัวแปร i มีค่าเท่ากับบรรทัดของตัวแปร r ส่วนr.address
หมายถึงตำแหน่งของตัวแปร r เช่น $D$20 เช่นนี้เป็นต้นเมื่อ i คือค่าบรรทัด .range("d" & i) จึงหมายถึงคอลัมน์ D บรรทัดที่เป็นค่าของ i ครับbrakubra wrote:.Range("D" & i) ค่าของอะไรครับ