เอาแบบนี้ได้ไหม
Code: Select all
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 Then Cells(ActiveCell.Row, 2).Select
End Sub
เวลาที่คนอื่นมาคลิกที่คอลัมน์ A มันจะเด้งออก แต่เวลาที่เราต้องการแก้ไข เราต้องกด Design Mode ก่อนนะ Code จะได้ไม่ Run
เพิ่มเติมนิดหนึ่งนะครับ เท่าที่ลองคิดดูแล้ว ถ้าหากเราต้องการทราบว่าใคร Save File เป็นคนสุดท้่าย เราควรนำค่าของ User เครื่อง ไปไว้ที่ใดที่หนึ่ง ในสถานะการณ์ กด Save และเมื่อเปิดไฟล์มาแล้วค่อยแจ้งว่าใครเป็นคน Save File ล่าสุด เช่น
Code: Select all
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 'เวลามีคนบันทึกไฟล์
Range("A2").Value = UserUpdate
Range("A3").Value = Now()
End Sub
Private Sub Workbook_Open() 'เวลาเปิด
MsgBox "ผู้บันทึกล่าสุดคือ " & Range("A2").Value & vbCrLf & _
"เวลา " & Range("A3").Value, vbInformation + vbOKOnly, "สถานะการใช้งาน"
End Sub
แล้วซ่อนที่ A2 และ A3 ถ้าหากไม่ต้องการให้ผู้อื่นเห็นอาจซ่อนโดยการจัดรูปแบบเป็น ;;; ก็ได้ครับ
หากต้องการ = IF(A1<>"",UserUpdate(),"") ค่อยใส่สูตรต่อ เพราะถ้านำค่าโดยตรงมาแสดง มันจะเป็นชื่อเครื่องผู้เปิดเองครับ ดังนั้นต้องพักค่าไว้ก่อน
