X
xthud4
Guest
Em là dân mới vào nghề, rất mong muốn được sự giúp đỡ của diễn đàn. Khi dùng VBA em muốn thực hiện một thủ tục khi có sự kiện ấn một phím nào đó trên bàn phím thì làm như thế nào vậy?
Bạn sử dụng lệnhEm là dân mới vào nghề, rất mong muốn được sự giúp đỡ của diễn đàn. Khi dùng VBA em muốn thực hiện một thủ tục khi có sự kiện ấn một phím nào đó trên bàn phím thì làm như thế nào vậy?
Application.OnKey(Key, Procedure)
Private Sub CommandButton1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
MsgBox (KeyAscii)
End Sub
Private Sub CommandButton1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
IF KeyAscii = 27 Then MsgBox ("Ban muon Esc, a!")
End Sub
Ý của em là sự kiện nhấm phím đối với một Sheet của Excel mà không phải của một Form. Chẳng hạn khi dùng phím Delete để xóa dữ liệu trong ô A1 thì sẽ thực hiện được thủ tục hiện một lời cảnh báo chẳng hạn....
Mình nghĩ không ai dùng lệnh Onkey trong sự kiện Worksheet_Change cả. Vì mỗi khi selection change thì nó lại Onkey, trong khi đó lệnh Onkey chỉ cần chạy 1 lần.Các bác làm ơn giúp em vô hiệu hóa nút Delete trong sự kiện Worksheet_Change như sau:
Private Sub Worksheet_Change (Byval Target as Range)
MsgBox("kgksdgffkâks")
End Sub
Em muốn khi sử dụng nút Delete trong bảng Excel thi thủ tục trong sự kiện trên không được thực hiện. Mong được sự giúp đỡ của các bác! Cám ơn nhiều!
Anh/ chị tìm được câu trả lời của ý này chưa. Chỉ em với ạÝ của em là sự kiện nhấm phím đối với một Sheet của Excel mà không phải của một Form. Chẳng hạn khi dùng phím Delete để xóa dữ liệu trong ô A1 thì sẽ thực hiện được thủ tục hiện một lời cảnh báo chẳng hạn....
Bạn thêm code này và sự kiện Workbook_Open hoặc Worksheet_ActivateAnh/ chị tìm được câu trả lời của ý này chưa. Chỉ em với ạ
Private Sub Workbook_Open()
Application.OnKey "{DEL}", "dele"
End Sub
Sub dele()
MsgBox "nguy hiem the"
End Sub
Em muốn thực hiện nó trên sự kiện Change của worksheet nhưng khi gõ phím del thì nó không thực hiện sự kiện đóBạn thêm code này và sự kiện Workbook_Open hoặc Worksheet_Activate
Mã:Private Sub Workbook_Open() Application.OnKey "{DEL}", "dele" End Sub
Và code này vào module
Mã:Sub dele() MsgBox "nguy hiem the" End Sub
Có một kiểu biến gì mà nó phát hiện ra phím gõ trên bàn phím không anh?Em muốn thực hiện nó trên sự kiện Change của worksheet nhưng khi gõ phím del thì nó không thực hiện sự kiện đó
Cái bài này bạn hỏi, đâu có liên quan gì đến bài bên kia? Bạn hỏi là tại cột B nếu xóa 1 ô ở trên thì ô liền kề bên dưới xóa theo đúng không? Tôi cho bạn giải pháp.Em muốn thực hiện nó trên sự kiện Change của worksheet nhưng khi gõ phím del thì nó không thực hiện sự kiện đó
Bài đã được tự động gộp:
Có một kiểu biến gì mà nó phát hiện ra phím gõ trên bàn phím không anh?
Private prvstrRangeName As String, prvstrValue As String
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ExitSub
If Target.Column <> 2 Then Exit Sub
If prvstrRangeName > "" Then
If Target.Count = 1 And Target.Value = "" And prvstrValue > "" Then
Application.EnableEvents = False
Range(prvstrRangeName).Offset(1).Value = ""
Application.EnableEvents = True
End If
End If
ExitSub:
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
If Target.Count = 1 Then
prvstrRangeName = Target.Address
prvstrValue = Target.Value
Else
prvstrRangeName = ""
prvstrValue = ""
End If
End Sub