Giá trị đầu là giá trị nào vậyNhờ A C E xem giúp mình trong file đính kèm.
Thanks.
Ba cột E,F,G có sẵn G=E*F."nếu ta thay đổi giá trị cột E hoặc F thì giá trị bên cột G sẽ thay đổi so với giá trị trước đó,giá trị trước khi thay đổi là giá trị đầu",giá trị thay đổi nếu tăng thì tô màu,bằng hoặc nhỏ hơn thì không tô màu bạn ah.Thanks.Giá trị đầu là giá trị nào vậy
Nói không hiểu gì hếtBa cột E,F,G có sẵn G=E*F. Giá trị mặc định cột G là giá trị đầu nếu ta thay đổi giá trị cột E hoặc F thì giá trị bên cột G sẽ thay đổi,giá trị thay đổi nếu tăng thì tô màu,bằng hoặc nhỏ hơn thì không tô màu bạn ah.Thanks.
Đúng đấy bạn.tiếp nữa G=E*F(21=7*3),lúc này 18 sẽ là giá trị đầu.Cảm ơn bạn đã quan tâm giúp đỡ.Nói không hiểu gì hết
Ví dụ
1. G=E*F(15=5*3) Ta cho là giá trị đầu
2 G=E*F(18=6*3) ta cho giá trị sau
nếu giá trị sau lớn hơn(18>15)thì tô màu đúng không?
Đúng đấy bạn.tiếp nữa G=E*F(21=7*3),lúc này 18 sẽ là giá trị đầu.Cảm ơn bạn đã quan tâm giúp đỡ.
Không được thì cũng cảm ơn sự quan tâm của bạn.Như vậy ai nhớ cho bạn cái 18 kia là đầu,khi đó bạn đổi thành 7*3 rồi
Có như nầy thì được 18 kia vẫn giữ nguyên trong các cột đó ta làm thêm 3 cột khác
Còn nói như bạn thì mình xin thua
Nhờ A C E xem giúp mình trong file đính kèm.
Thanks.
Về nguyên tắc, có thể sử dụng sự kiện: Worksheet_SelectionChange để lưu lại giá trị của ô tại cột G trước khi bị thay đổi
sau đó dùng sự kiện Worksheet_Change để kiểm tra sự thay đổi và quyết định tô màu hay không.
Việc dùng 2 sự kiện này sẽ làm cho bảng tính trở nên nặng nề.
Cái này chỉ đúng khi so với giá trị trong cột G đầu tiên thí dụ G=E*F (18=6*3) nếu giảm giá trị trong cột E là 5 thì (15=5*3) nhập lại giá trị cột E là 8 (24=8*3) thì cột G không tô đỏ.Bạn xem file đính kèm nhé.
Public v
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
If Not Intersect(Target, Me.[E8:F28]) Is Nothing Then
Set r = Target.Offset(0, 7 - Target.Column)
If v < r.Value Then r.Interior.ColorIndex = 35 Else r.Interior.ColorIndex = 0
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Me.[E8:F28]) Is Nothing Then
v = Target.Offset(0, 7 - Target.Column)
End If
End Sub
Cảm ơn bạn,cái này đáp ứng đầy đủ cái mình cần,nhưng cho mình hỏi giờ nếu đổi lại cột F=E*G thì sửa code làm sao?Trong file đính kèm, tôi sử dụng 2 sự kiện như nói ở trên trong sheet1 như sau:
PHP:Public vPrivate Sub Worksheet_Change(ByVal Target As Range) Dim r As Range If Not Intersect(Target, Me.[E8:F28]) Is Nothing Then Set r = Target.Offset(0, 7 - Target.Column) If v < r.Value Then r.Interior.ColorIndex = 35 Else r.Interior.ColorIndex = 0 End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Me.[E8:F28]) Is Nothing Then v = Target.Offset(0, 7 - Target.Column) End If End Sub
Xem file đính kèm.
Thân
Public v
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
If Not Intersect(Target, Union(Me.[E8:E28], Me.[G8:G28])) Is Nothing Then
If Target.Column = 5 Then Set r = Target.Offset(0, 1) Else Set r = Target.Offset(0, -1)
If v < r.Value Then r.Interior.ColorIndex = 35 Else r.Interior.ColorIndex = 0
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Union(Me.[E8:E28], Me.[G8:G28])) Is Nothing Then
If Target.Column = 5 Then v = Target.Offset(0, 1) Else v = Target.Offset(0, -1)
End If
End Sub