tạo macro tìm cập nhật thời gian hiện tại

Liên hệ QC

võ thành trung

Thành viên mới
Tham gia
24/3/20
Bài viết
31
Được thích
2
Gửi cả nhà,

em có vấn đề như sau:
- em đang cần tìm 1 hàm hay add-in để khi em kích chuột trái 2 lần vào 1 ô bất kỳ trong cột A đến cột B (vùng được chọn có thể thay đổi) thì sẽ hiện ra thời gian hiện tại (hàm now trong excel) và paste value
- em đã dùng chế độ
""Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub"" nhưng không đúng vì kích đúp ô nào cũng hiện ra.
--> nhờ mọi người chỉ giúp em.
 
Gửi cả nhà,

em có vấn đề như sau:
- em đang cần tìm 1 hàm hay add-in để khi em kích chuột trái 2 lần vào 1 ô bất kỳ trong cột A đến cột B (vùng được chọn có thể thay đổi) thì sẽ hiện ra thời gian hiện tại (hàm now trong excel) và paste value
- em đã dùng chế độ
""Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub"" nhưng không đúng vì kích đúp ô nào cũng hiện ra.
--> nhờ mọi người chỉ giúp em.

Bạn thử code này xem:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.EnableEvents = False
    If Mid((Target.Address), 2, 1) = "A" Or Mid((Target.Address), 2, 1) = "B" Then
        Target = "=Now()"
        Target.Select
        With Selection
            .Copy
            .PasteSpecial Paste:=xlPasteValues
        End With
        Application.CutCopyMode = False
    End If
Application.EnableEvents = True
End Sub
 
Lần chỉnh sửa cuối:
Thiên hạ thấy ma-cơ-rô làm việc dễ quá rồi tự bỏ qua các phần căn bản của Excel.
Ctrl+Shift+; (dấu chấm phẩy) sẽ ghi trị NOW() vào ô. Đâu có khó hơn kích đúo chuột bao nhiêu. Cần gì phải ma-cơ-rô cho rườm rà.
 
em có vấn đề như sau:
- em đang cần tìm 1 hàm hay add-in để khi em kích chuột trái 2 lần vào 1 ô bất kỳ trong cột A đến cột B (vùng được chọn có thể thay đổi) thì sẽ hiện ra thời gian hiện tại (hàm now trong excel) và paste value
- em đã dùng chế độ
""Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub"" nhưng không đúng vì kích đúp ô nào cũng hiện ra.
--> nhờ mọi người chỉ giúp em.
Các ví dụ:
1. Đúp chuột vào bất cứ ô nào trong cột A hoặc B thì đều nhập ngày tháng và thời gian
Mã:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column < 3 Then   ' neu chi so cot cua o la 1 hoac 2
        Target.Value = Now()
        Cancel = True
    End If
End Sub

2. Chỉ cho phép trong vùng vd. A3:B17
Mã:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Me.Range("A3:B17")) Is Nothing Then    ' neu dup chuot trong vung A3:B17
        Target.Value = Now()
        Cancel = True
    End If
End Sub
 
Thiên hạ thấy ma-cơ-rô làm việc dễ quá rồi tự bỏ qua các phần căn bản của Excel.
Ctrl+Shift+; (dấu chấm phẩy) sẽ ghi trị NOW() vào ô. Đâu có khó hơn kích đúo chuột bao nhiêu. Cần gì phải ma-cơ-rô cho rườm rà.
Vậy thì biết thêm 1 cách nữa để làm. Biết nhiều học nhiều nhưng khi dùng thì chọn cái đơn giản nhất :D
 
Các ví dụ:
1. Đúp chuột vào bất cứ ô nào trong cột A hoặc B thì đều nhập ngày tháng và thời gian
Mã:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column < 3 Then   ' neu chi so cot cua o la 1 hoac 2
        Target.Value = Now()
        Cancel = True
    End If
End Sub

2. Chỉ cho phép trong vùng vd. A3:B17
Mã:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Me.Range("A3:B17")) Is Nothing Then    ' neu dup chuot trong vung A3:B17
        Target.Value = Now()
        Cancel = True
    End If
End Sub
cảm ơn bạn đã hướng dẫn
Bài đã được tự động gộp:

Thiên hạ thấy ma-cơ-rô làm việc dễ quá rồi tự bỏ qua các phần căn bản của Excel.
Ctrl+Shift+; (dấu chấm phẩy) sẽ ghi trị NOW() vào ô. Đâu có khó hơn kích đúo chuột bao nhiêu. Cần gì phải ma-cơ-rô cho rườm rà.
Do bên mình dùng nhiều chế độ chọn ô hiện ra =now() -> kích đúp chuột trái sẽ giúp tiết kiệm thời gian hơn
 
...Do bên mình dùng nhiều chế độ chọn ô hiện ra =now() -> kích đúp chuột trái sẽ giúp tiết kiệm thời gian hơn
Bạn muốn dùng ma-cơ-rô thì dùng.
Chuyện "tiết kiệm" là chủ quan.
Giữa việc dùng công cụ có sẵn của Excel và dùng ma-cơ-rô bắt sự kiện, gọi hàm lấy kết quả gán lên cell thì cái nào "tiết kiệm" hơn?
 
Bạn muốn dùng ma-cơ-rô thì dùng.
Chuyện "tiết kiệm" là chủ quan.
Giữa việc dùng công cụ có sẵn của Excel và dùng ma-cơ-rô bắt sự kiện, gọi hàm lấy kết quả gán lên cell thì cái nào "tiết kiệm" hơn?
Dùng chuột có thể tới 1 vị trí bất kỳ trong 1 nốt nhạc.

Giả sử tôi cần thao tác trong 2 cột A và B. Tôi có thể cần thao tác trong A1, sau đó trong B10. Nếu bác chỉ dùng bàn phím thì sau khi thao tác trong A1 bác mất rất nhiều lần nhấn phím để tới B10. Bác có thể dùng cả bàn phím và chuột: click vào A1 -> nhấn phím -> click B10 -> nhấn phím. Tóm lấy chuột và trỏ vào A1 rồi click, rồi sau đó bỏ chuột để tay nhấn bàn phím (vì chỉ 1 tay khó nhấn tổ hợp phím) làm mất thời gian. Trong khi đó chỉ dùng chuột thôi có thể đúp chuột vào A1 rồi đúp chuột tiếp vào B10. Tiện hơn rất nhiều.

Cách của bác có ưu điểm là ai cũng làm được, không phải đi hỏi và đợi vêu mõm chờ người khác "chiếu cố".

Mà bác nhấn thế nào mà ra ngày tháng + thời gian - NOW, vd. 25.09.2020 08:41? Tôi nhấn Ctrl + Shift + ; thì ra mỗi thời gian - Time, vd. 8:41
 
Giả sử tôi cần thao tác trong 2 cột A và B. Tôi có thể cần thao tác trong A1, sau đó trong B10. Nếu bác chỉ dùng bàn phím thì sau khi thao tác trong A1 bác mất rất nhiều lần nhấn phím để tới B10. Bác có thể dùng cả bàn phím và chuột: click vào A1 -> nhấn phím -> click B10 -> nhấn phím. Tóm lấy chuột và trỏ vào A1 rồi click, rồi sau đó bỏ chuột để tay nhấn bàn phím (vì chỉ 1 tay khó nhấn tổ hợp phím) làm mất thời gian. Trong khi đó chỉ dùng chuột thôi có thể đúp chuột vào A1 rồi đúp chuột tiếp vào B10. Tiện hơn rất nhiều.
Khi sử dụng Excel, tôi dùng phím tắt nhiều lắm.
Có thể do tôi quen làm việc từ thời con chuột còn thô sơ.

...
Mà bác nhấn thế nào mà ra ngày tháng + thời gian - NOW, vd. 25.09.2020 08:41? Tôi nhấn Ctrl + Shift + ; thì ra mỗi thời gian - Time, vd. 8:41
Nhấn Ctrl+; thì ra ngày. Ctrl+Shift+; thì ra giờ
Ctrl+; rồi Space rồi Ctrl+Shift+; thì ra ngày giờ.

Đúng là hơi mất công một chút. Nhưng bác nhớ tôi là người vẫn cặm cụi làm những chuyện mà các bạn trên đây hay than "gõ gãy tay, đến Tết mới xong", "làm thủ công chắc em chết quá",... :p

Vả lại, doible click cell nó có ý nghĩa riêng của nó. Hy sinh cái này cho cái kia thì phải suy nghĩ cho kỹ. Coi chừng trường hợp kích đúp ở một cell thì tác dụng A mà ở cell khác thì ra tác dụng B.
 
Web KT
Back
Top Bottom