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
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If ActiveCell.Column = 2 Then Range("E" & Target.Row) = Now()
If ActiveCell.Column = 4 Then Range("F" & Target.Row) = Now()
Application.EnableEvents = True
End Sub
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
ActiveSheet.Unprotect Password:="xxxx"
If ActiveCell.Column = 2 Then Range("E" & Target.Row) = Now()
If ActiveCell.Column = 4 Then Range("F" & Target.Row) = Now()
Application.EnableEvents = True
ActiveSheet.Protect Password:="xxxx"
End Sub
ขอบคุณมากครับอาจารย์snasui wrote: กรณีไม่ต้องการให้แก้พื้นที่ใด ๆ จะต้องทำการ Protect Worksheet เสียก่อนครับ
ลักษณะงานนี้จะมีขั้นตอนการทำงานคือ
- พื้นที่ใดก็ตามที่ต้องการให้แก้ไขใด้ให้คลุมพื้นที่นั้น จากนั้นกดแป้น Ctrl+1 เพื่อเปิดหน้าต่าง Format Cells > ไปที่แถบ Protection ปลดเครื่องหมายที่ Locked ส่วนพื้นที่ใดที่ไม่ต้องการให้แก้ต้อง Tick ให้เป็น Locked
- คลิกขวาที่แถบชีต > Protect Sheet > ระบุรหัสการป้องกันชีต > ระบุซ้ำ
- ปรับ Code เสียใหม่เป็น
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False ActiveSheet.Unprotect Password:="xxxx" If ActiveCell.Column = 2 Then Range("E" & Target.Row) = Now() If ActiveCell.Column = 4 Then Range("F" & Target.Row) = Now() Application.EnableEvents = True ActiveSheet.Protect Password:="xxxx" End Sub