Page 1 of 1
lock cell ไม่ให้แก้ไข แต่ต้องการให้แสดงเวลาใน cell นั้น แต่ VBA bug
Posted: Mon Jul 17, 2017 4:21 pm
by sooksun2009
ขอรบกวนท่านอาจาร์ย์ ช่วยแก่ไข VBA คือ ไม่อยากให้แก้ colume E,F แต่อยากให้แสดงเวลา เมื่อพิมพ์ที่colume B,D ตามFile แนบ ขอบคุณครับ
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
Re: lock cell ไม่ให้แก้ไข แต่ต้องการให้แสดงเวลาใน cell นั้น แต่ VBA bug
Posted: Mon Jul 17, 2017 6:53 pm
by snasui

กรณีไม่ต้องการให้แก้พื้นที่ใด ๆ จะต้องทำการ 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
Re: lock cell ไม่ให้แก้ไข แต่ต้องการให้แสดงเวลาใน cell นั้น แต่ VBA bug
Posted: Mon Jul 17, 2017 10:37 pm
by sooksun2009
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
ขอบคุณมากครับอาจารย์