Lấy độ lệch giá trị 1 ô trước và sau khi nhập...Mong anh/chị giúp đỡ! (1 người xem)

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

alias1313

Thành viên hoạt động
Tham gia
7/4/17
Bài viết
163
Được thích
13
Kính chào anh/chi
Cám ơn anh/chị đã tạo một diễn đàn hết sức bổ ích.

Em có 1 vấn đề mong anh/chị giúp đỡ:
- em muốn lấy độ lệch giá trị cúa 1 ô trước và sau khi nhập.
- Ví dụ:
Em nhập giá trị vào ô B1 là 18, sau đó em lại nhập giá trị vào ô B1 là 50, vậy có cách nào xuất giá trị :ABS(50-18=32) ra ô B2 không ạ?

sau đó em lại nhập giá trị vào ô B1 là 30, giá trị xuất ra ô B2 thay đổi thành: ABS(30-50=-20), cứ như vậy khi em nhập 1 giá trị mới vào B1 thì B2 cũng có giá trị thay đổi tương ứng.

Rất mong anh/chị giúp đỡ em, cảm ơn anh/chị rất rất nhiều...!!!
 
Kính chào anh/chi
Cám ơn anh/chị đã tạo một diễn đàn hết sức bổ ích.

Em có 1 vấn đề mong anh/chị giúp đỡ:
- em muốn lấy độ lệch giá trị cúa 1 ô trước và sau khi nhập.
- Ví dụ:
Em nhập giá trị vào ô B1 là 18, sau đó em lại nhập giá trị vào ô B1 là 50, vậy có cách nào xuất giá trị :ABS(50-18=32) ra ô B2 không ạ?

sau đó em lại nhập giá trị vào ô B1 là 30, giá trị xuất ra ô B2 thay đổi thành: ABS(30-50=-20), cứ như vậy khi em nhập 1 giá trị mới vào B1 thì B2 cũng có giá trị thay đổi tương ứng.

Rất mong anh/chị giúp đỡ em, cảm ơn anh/chị rất rất nhiều...!!!
Dùng công thức không được nhưng lập trình thì được nha bạn:
Mã:
Dim OldVal As Double
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$1" Then
    If IsNumeric(Target.Value) Then
      Target.Offset(1).Value = Abs(OldVal - Target.Value)
      OldVal = Target.Value
    End If
  End If
End Sub
Code trên cho vào cửa sổ VBA của sheet hiện hành
 
Dùng công thức không được nhưng lập trình thì được nha bạn:
Mã:
Dim OldVal As Double
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$1" Then
    If IsNumeric(Target.Value) Then
      Target.Offset(1).Value = Abs(OldVal - Target.Value)
      OldVal = Target.Value
    End If
  End If
End Sub
Code trên cho vào cửa sổ VBA của sheet hiện hành

Em cám ơn Anh rất nhiều! em đã thử và chạy rất tốt Anh ạ! hihi! Anh là No1..^_^...
Anh cho em hỏi thêm: Em muốn có thêm một ô giống như ô B1 ( ví dụ thêm ô C1) thì em phải sửa đoạn code của Anh thế nào? Em đã cố mày mò nhưng không được!
Mong Anh giúp đỡ! ;;;;;;;;;;;
 
Em cám ơn Anh rất nhiều! em đã thử và chạy rất tốt Anh ạ! hihi! Anh là No1..^_^...
Anh cho em hỏi thêm: Em muốn có thêm một ô giống như ô B1 ( ví dụ thêm ô C1) thì em phải sửa đoạn code của Anh thế nào? Em đã cố mày mò nhưng không được!
Mong Anh giúp đỡ! ;;;;;;;;;;;

Thì cứ viết tiếp thôi
Mã:
Dim OldVal1 As Double, OldVal2 As Double
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$1" Then
    If IsNumeric(Target.Value) Then
      Target.Offset(1).Value = Abs(OldVal1 - Target.Value)
      OldVal1 = Target.Value
    End If
  End If
  If Target.Address = "$C$1" Then
    If IsNumeric(Target.Value) Then
      Target.Offset(1).Value = Abs(OldVal2 - Target.Value)
      OldVal2 = Target.Value
    End If
  End If
End Sub
 
Thì cứ viết tiếp thôi
Mã:
Dim OldVal1 As Double, OldVal2 As Double
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$1" Then
    If IsNumeric(Target.Value) Then
      Target.Offset(1).Value = Abs(OldVal1 - Target.Value)
      OldVal1 = Target.Value
    End If
  End If
  If Target.Address = "$C$1" Then
    If IsNumeric(Target.Value) Then
      Target.Offset(1).Value = Abs(OldVal2 - Target.Value)
      OldVal2 = Target.Value
    End If
  End If
End Sub

Hihi..thế mà em không nghĩ ra.....Cám ơn Anh rất nhiều!

Anh có thể giúp em thêm 1 vấn đề nữa nha:( tiếp theo vấn đề ở trên)

Sau khi ô B2 và C2 có được giá trị thay dổi trước và sau khi nhập:

Em ví du:
B2=6, C2=8
Em muốn ô E3,F3 sẽ hiển thị thời gian(gio:phut):
- E3= t1+B2(6)
- F3= t2+C2(8)
Với t1,t2 là thời gian ngay lúc B2,C2 thay đổi giá trị.
Em ví dụ:
- Lúc B2 thay đổi giá trị thành 6 là: 14h30, thì E3=14h30+6=14h36
- Lúc C2 thay đổi giá trị thành 8 là: 14h31 thì F3= 14h31+8=14h39
Khi đó E3 hiển thi: 14h36
F3 hiển thị: 14h39

Em nghĩ vấn đề này hơi phúc tạp, nhưng rất mong Anh giúp đỡ em.
Thành thật cám ơn Anh rất nhiều!
 
Anh có thể giúp em thêm 1 vấn đề nữa nha:( tiếp theo vấn đề ở trên)

Sau khi ô B2 và C2 có được giá trị thay dổi trước và sau khi nhập:

Em ví du:
B2=6, C2=8
Em muốn ô E3,F3 sẽ hiển thị thời gian(gio:phut):
- E3= t1+B2(6)
- F3= t2+C2(8)
Với t1,t2 là thời gian ngay lúc B2,C2 thay đổi giá trị.
Em ví dụ:
- Lúc B2 thay đổi giá trị thành 6 là: 14h30, thì E3=14h30+6=14h36
- Lúc C2 thay đổi giá trị thành 8 là: 14h31 thì F3= 14h31+8=14h39
Khi đó E3 hiển thi: 14h36
F3 hiển thị: 14h39

Em nghĩ vấn đề này hơi phúc tạp, nhưng rất mong Anh giúp đỡ em.
Thành thật cám ơn Anh rất nhiều!
Chắc là vầy:
Mã:
Dim OldVal1 As Double, OldVal2 As Double
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$1" Then
    If IsNumeric(Target.Value) Then
      Target.Offset(1).Value = Abs(OldVal1 - Target.Value)
      OldVal1 = Target.Value
      [COLOR=#ff0000]Target.Offset(2, 3).Value = Target.Offset(1).Value / 1440 + Time[/COLOR]
    End If
  End If
  If Target.Address = "$C$1" Then
    If IsNumeric(Target.Value) Then
      Target.Offset(1).Value = Abs(OldVal2 - Target.Value)
      OldVal2 = Target.Value
      [COLOR=#ff0000]Target.Offset(2, 3).Value = Target.Offset(1).Value / 1440 + Time[/COLOR]
    End If
  End If
End Sub

2 dòng màu đỏ là mới thêm vào
Chú ý: Format E3:F3 theo định dạng hh:mm nhé
 
Chắc là vầy:
Mã:
Dim OldVal1 As Double, OldVal2 As Double
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$1" Then
    If IsNumeric(Target.Value) Then
      Target.Offset(1).Value = Abs(OldVal1 - Target.Value)
      OldVal1 = Target.Value
      [COLOR=#ff0000]Target.Offset(2, 3).Value = Target.Offset(1).Value / 1440 + Time[/COLOR]
    End If
  End If
  If Target.Address = "$C$1" Then
    If IsNumeric(Target.Value) Then
      Target.Offset(1).Value = Abs(OldVal2 - Target.Value)
      OldVal2 = Target.Value
      [COLOR=#ff0000]Target.Offset(2, 3).Value = Target.Offset(1).Value / 1440 + Time[/COLOR]
    End If
  End If
End Sub

2 dòng màu đỏ là mới thêm vào
Chú ý: Format E3:F3 theo định dạng hh:mm nhé

Hihi....NHờ Anh giúp đỡ tận tình mà em đã hoàn thành công việc.
Cám ơn Anh rất nhiều!
_)(#;
 

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

Back
Top Bottom