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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)Code: Select all
If Target.Column = 1 Then
With Sheets("Á.¤.")
Set rCheck = .Range("A1", .Range("A" & Rows.Count).End(xlUp))
End With
With Sheets("Data")
Set Rng = .Range("A1", .Range("H" & Rows.Count).End(xlUp)) 'Range H ¤×Í Column ÊØ´·éÒ·Õè´Ö§
End With
ColName = 2
ColAmount = 3
ColIDMKT = 4
ColNameMKT = 5
ColBranch = 6
ColPhone = 7
lng = Application.CountIf(Rng.Resize(, 1), Target)
If lng >= 1 Then
Target.Offset(0, 1) = Application.VLookup(Target, Rng, ColName, 0)
Target.Offset(0, 2) = Application.VLookup(Target, Rng, ColAmount, 0)
Target.Offset(0, 5) = Application.VLookup(Target, Rng, ColIDMKT, 0)
Target.Offset(0, 6) = Application.VLookup(Target, Rng, ColNameMKT, 0)
Target.Offset(0, 8) = Application.VLookup(Target, Rng, ColBranch, 0)
Target.Offset(0, 9) = Application.VLookup(Target, Rng, ColPhone, 0)
Target.Offset(0, 3).Activate 'ä»·Õè ColumnD
Else
'¶éÒäÁèÁÕã¹°Ò¹¢éÍÁÙÅ
MsgBox ("àÅ¢·ÕèºÑªÕ¹ÕéäÁèÁÕã¹°Ò¹¢éÍÁÙÅ")
Target.Offset(0, 0).Activate
Target.Offset(0, 1) = "Êѹ¹Ô°Ò¹ÇèÒ»Ô´ºÑªÕáÅéÇ"
Target.Font.Color = vbRed
Target.Font.Bold = True
Target.Offset(0, 2) = ""
Target.Offset(0, 5) = ""
Target.Offset(0, 6) = ""
Target.Offset(0, 8) = ""
Target.Offset(0, 9) = ""
End If
Code: Select all
Dim Confirm as Integer
If Target.Column = 1 Then
Confirm = MsgBox("Are you sure?",VbYesNo)
End if
If Confirm = VbYes then
'Do something
Else
Exit sub
end if
Code: Select all
Dim Confirm as Integer
If Target.Column = 1 Then
Confirm = MsgBox("Are you sure?",VbYesNo)
End if
If Confirm = VbYes then
'Do something
Else
Application.Undo
Exit Sub
End If
วิธีการทดสอบครับsnasui wrote: ช่วยอธิบายวิธีการทดสอบ ค่าที่ใช้ในการทดสอบ ผลที่ได้ ผลลัพธ์ที่ต้องการมาด้วยครับ
จากต้นฉบับไม่เป็นครับ แต่พอ Copy ไฟล์มาแล้วลบข้อมูลจริงออกแล้วใส่ข้อมูลใหม่ไป กลับหาไม่เจออย่างที่อาจารย์ว่าไว้จริง ๆ ถ้ายังไงผมจะพยายามแก้ไขตรงนี้ก่อนแล้วกันครับsnasui wrote: ค่อย ๆ ถามตอบกันไปครับ
จากไฟล์ที่แนบมา ผมคีย์ 12-12345 ซึ่งมีในฐานข้อมูลคือชีท DATA แต่โปรแกรมฟอ้งว่าไม่มีในฐานข้อมูล แก้ตรงนี้ก่อนครับ
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
'Other code
Application.EnableEvents = False
If Target.Count > 1 Then Exit Sub
'Other code
End If
Application.EnableEvents = True
End Sub
Code: Select all
Confirm = MsgBox("คุณต้องการแก้ไขข้อมูลใช่หรือไม่ !?", vbYesNo + vbDefaultButton2)
ขอบคุณมากครับlogic wrote:ลองดู Code นี้ครับCode: Select all
Confirm = MsgBox("คุณต้องการแก้ไขข้อมูลใช่หรือไม่ !?", vbYesNo + vbDefaultButton2)
เป็นการเขียน Code เพื่อให้โปรแกรมไม่ต้องไปเรียกใช้ Event ใด ๆ หาก Code หลังจากakung wrote:ขอความหมายของคำสั่งนี้หน่อยครับอาจารย์
Application.EnableEvents = False
Application.EnableEvents = False
ไปทำให้เกิด Event และเมื่อเพิ่ม Application.EnableEvents = False
เอาไว้แล้วควรจะปิดด้วย Application.EnableEvents = True
เสมอ เพื่อให้โปรแกรมกลับมายังสภาพที่พร้อมจะทำงานตาม Event อีกครั้ง