Tự động cập nhật thời gian của hệ thống (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

leviethoaiphuong

Thành viên mới
Tham gia
22/5/14
Bài viết
3
Được thích
0
nhờ các cao thủ giúp ạ. em muốn khi nhập dữ liệu vào ô điện thoại thì ô thời gian tự động nhảy giờ hiện tại của hệ thống,em thử dùng hàm NOW() nhưng khi em nhập dữ liệu ở ô thứ tự thứ 2 thì ô đã nhập trước cũng thay đổi tgian theo, mong các anh chị giúp em ạ,chi tiết file đính kèm ạ
 

File đính kèm

nhờ các cao thủ giúp ạ. em muốn khi nhập dữ liệu vào ô điện thoại thì ô thời gian tự động nhảy giờ hiện tại của hệ thống,em thử dùng hàm NOW() nhưng khi em nhập dữ liệu ở ô thứ tự thứ 2 thì ô đã nhập trước cũng thay đổi tgian theo, mong các anh chị giúp em ạ,chi tiết file đính kèm ạ
Vấn đề này đã đề cập rất nhiều trên diễn đàn rồi. Yêu cầu của bạn không thể giải quyết bằng hàm được mà phải sử dụng VBA. Chẳng hạn, sử dụng code sau cho Sheet1:
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cll As Range
If Intersect(Target, [C3:C10000]) Is Nothing Then Exit Sub
For Each Cll In Intersect(Target, [C3:C10000])
If IsEmpty(Cll) Then
Cll.Offset(, 3).ClearContents
Else
Cll.Offset(, 3) = Now
End If
Next
End Sub[/GPECODE]
Trong file đính kèm, bạn thử một số thao tác sau (tất nhiên phải Enable Macro trước đã):
- Nhập vào cột C
- Xóa ô nào đó trên cột C
- Copy một vùng nơi khác dán vào cột C.
 

File đính kèm

[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cll As Range
If Intersect(Target, [C3:C10000]) Is Nothing Then Exit Sub
For Each Cll In Intersect(Target, [C3:C10000])
If IsEmpty(Cll) Then
Cll.Offset(, 3).ClearContents
Else
Cll.Offset(, 3) = Now
End If
Next
End Sub[/GPECODE]
Bạn hiền dùng vòng lặp có dụng ý gì không?
Thấy công thức trong file có thêm điều kiện C&D&E nên mình sửa lại chút:
[gpecode=vb]
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C3:E10000]) Is Nothing Then
If IsEmpty(Target) Then
Cells(Target.Row, 6).ClearContents
Else
Cells(Target.Row, 6) = Now
End If
End If
End Sub
[/gpecode]
 
Bạn hiền dùng vòng lặp có dụng ý gì không?
Thấy công thức trong file có thêm điều kiện C&D&E nên mình sửa lại chút:
[gpecode=vb]
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C3:E10000]) Is Nothing Then
If IsEmpty(Target) Then
Cells(Target.Row, 6).ClearContents
Else
Cells(Target.Row, 6) = Now
End If
End If
End Sub
[/gpecode]
Bạn hiền muốn biết dụng ý của vòng lặp thì cứ thử một số thao tác như bài trên là biết ngay à.
Code của bạn có một số vấn đề, bạn thử làm một số thao tác sau sẽ thấy:
- Nhập giá trị hàng loạt tại một vùng nào đó trên cột C, chẳng hạn: Chọn C3:C10, nhập giá trị gì đó, nhấn Ctrl+Enter
- Vẫn đang chọn vùng C3:C10 như trên, hãy nhấn phím Delete.
- Copy một vùng dữ liệu nào đó và dán vào cột C.

Cũng với chuỗi thao tác như trên, bạn sử dụng code của mình và so sánh kết quả với code của bạn, sẽ thấy sự khác biệt.
 
Bạn hiền muốn biết dụng ý của vòng lặp thì cứ thử một số thao tác như bài trên là biết ngay à.
Code của bạn có một số vấn đề, bạn thử làm một số thao tác sau sẽ thấy:
- Nhập giá trị hàng loạt tại một vùng nào đó trên cột C, chẳng hạn: Chọn C3:C10, nhập giá trị gì đó, nhấn Ctrl+Enter
- Vẫn đang chọn vùng C3:C10 như trên, hãy nhấn phím Delete.
- Copy một vùng dữ liệu nào đó và dán vào cột C.
Cũng với chuỗi thao tác như trên, bạn sử dụng code của mình và so sánh kết quả với code của bạn, sẽ thấy sự khác biệt.
Trường hợp mình nhập cột D, E hoặc sửa thông tin cột 1 trong các cột D, E thì sửa code thế nào vậy Nghĩa Phúc?
 
em cảm ơn bác trước,nhưng không hiểu lý do sao mà exel của em,ko xem và cũng thêm cos đc ạ, vì dùng máy công ty nên ko thể can thiệp đc
 
Trường hợp mình nhập cột D, E hoặc sửa thông tin cột 1 trong các cột D, E thì sửa code thế nào vậy Nghĩa Phúc?
Nghĩa là thế nào nhỉ, mình chưa hiểu? Việc này có liên quan đến cột C hay không?
Lúc nãy tác giả chỉ muốn "khi nhập dữ liệu vào ô điện thoại thì ô thời gian tự động nhảy giờ hiện tại của hệ thống" nên mình viết code như vậy.
 
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cll As Range
If Intersect(Target, [C3:C10000]) Is Nothing Then Exit Sub
For Each Cll In Intersect(Target, [C3:C10000])
If IsEmpty(Cll) Then
Cll.Offset(, 3).ClearContents
Else
Cll.Offset(, 3) = Now
End If
Next
End Sub[/GPECODE]

Vì tác giả muốn
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom