Ghi nhận thời gian thay đổi ô có công thức

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Tintin113

Thành viên mới
Tham gia
7/6/18
Bài viết
27
Được thích
0
Hi mọi người giúp em với ạ!
Em đang ghi nhận thời gian thay đổi của 1 ô và em có dòng code bên dưới. Tuy nhiên giá trị ô range(“B:B”) là công thức nên không cập nhật được thời gian. Có cách nào sửa lại code bên dưới không ạ



Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20140722
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target)
xOffsetColumn = 1
If Not WorkRng Is Nothing Then
Application.EnableEvents = False
For Each Rng In WorkRng
If Not VBA.IsEmpty(Rng.Value) Then
Rng.Offset(0, xOffsetColumn).Value = Now
Rng.Offset(0, xOffsetColumn).NumberFormat = "dd-mm-yyyy, hh:mm:ss"
Else
Rng.Offset(0, xOffsetColumn).ClearContents
End If
Next
Application.EnableEvents = True
End If
End Sub
 
Hi mọi người giúp em với ạ!
Em đang ghi nhận thời gian thay đổi của 1 ô và em có dòng code bên dưới. Tuy nhiên giá trị ô range(“B:B”) là công thức nên không cập nhật được thời gian. Có cách nào sửa lại code bên dưới không ạ



Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20140722
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target)
xOffsetColumn = 1
If Not WorkRng Is Nothing Then
Application.EnableEvents = False
For Each Rng In WorkRng
If Not VBA.IsEmpty(Rng.Value) Then
Rng.Offset(0, xOffsetColumn).Value = Now
Rng.Offset(0, xOffsetColumn).NumberFormat = "dd-mm-yyyy, hh:mm:ss"
Else
Rng.Offset(0, xOffsetColumn).ClearContents
End If
Next
Application.EnableEvents = True
End If
End Sub
Có cách là xem vùng B:B công thức lấy data từ đâu --> xem thay đổi từ đó (bắt vào cái gốc, thay vì nắm đầu ngọn)
Nếu không, thì là nắm cái ngọn, và phản lại đặc trưng của công thức là luôn động thay đổi tức thì
 
Có cách là xem vùng B:B công thức lấy data từ đâu --> xem thay đổi từ đó (bắt vào cái gốc, thay vì nắm đầu ngọn)
Nếu không, thì là nắm cái ngọn, và phản lại đặc trưng của công thức là luôn động thay đổi tức thì
Vùng tham chiếu của công thức có đến 2 đến 3 vùng gốc thì mình sửa range như thế nào nhờ bác hướng dẫn giúp ạ. Ví dụ vùng B:B là công thức cộng của A và C
 
Vùng tham chiếu của công thức có đến 2 đến 3 vùng gốc thì mình sửa range như thế nào nhờ bác hướng dẫn giúp ạ. Ví dụ vùng B:B là công thức cộng của A và C
Thì hãy thay B:B bởi cả hoặc vùng A và hoặc C đó vào
Set WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target)
 
Em mới vào ngành nên nhờ bác chỉnh giúp em với ạ
Như bài 4 trên chỉ bạn đó, vì tôi không biết vùng B:B chứa công thức gì thì sao mà sửa, tóm lại đưa thông tin nên đầy đủ, có khi cả file thì mới có câu trả lời đủ, còn không chỉ là giải pháp.
 

Tintin113

Bạn nên sử dụng hàm thay vì dùng sự kiện

=timeChanged(B1)
JavaScript:
Function timeChanged(ByVal cell As Range)
  If cell(1, 1).Value <> Empty Then  timeChanged = Now  Else timeChanged = ""
End Function
 
Web KT

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

Back
Top Bottom