hoangtung211286
Thành viên mới

- Tham gia
- 10/12/14
- Bài viết
- 8
- Được thích
- 0
MÌNH CÓ ĐOẠN CODE NÀY
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Find("=", , , 2) Is Nothing Then Exit Sub
If Target.Offset(1, 0) <> "" And Target.Offset(1, -1) <> "" Then Target.Offset(1, 0).EntireRow.Insert
If InStr(Target, ": ") Then
'Ta = Right(Target, Len(Target) - InStr(Target, ":") - 1)
Ta = Mid(Target, InStrRev(Target, ":") + 1, InStr(Target, "=") - InStrRev(Target, ":") - 1) ' <-- sua 02.04.2011
Tb = Replace(Ta, " ", "")
KoCoDienGiai:
On Error GoTo LOI
Tc = Replace(Tb, ",", ".")
Tc = Replace(Tc, "x", "*")
Tc = Replace(Tc, "=", "")
Khoiluong = Round(Evaluate("=" & Tc), 3)
'Noi gia tri voi ket qua:
If Right(Target, 1) = "=" Or Khoiluong <> Replace(Right(Target, Len(Target) - InStr(Target, "=")), " ", "") Then ' <-- them
With Target
'.Value = .Value & " " & Khoiluong
.Value = Left(.Value, InStr(.Value, "=")) & " " & Khoiluong
.Font.ColorIndex = 9
.Characters(InStr(.Value, "=") + 1, Len(.Value)).Font.ColorIndex = 5
End With
Else: '<-- them
With Target
.Font.ColorIndex = 9
.Characters(InStr(.Value, "=") + 1, Len(.Value)).Font.ColorIndex = 5
End With
Exit Sub '<-- them
End If
Else:
Tb = Replace(Target, " ", "")
If IsNumeric(Left(Tb, 1)) Or Left(Tb, 1) = "(" Then
Tb = Left(Target, InStr(Target, "=") - 1) ' <-- them
GoTo KoCoDienGiai
'Else: Exit Sub
End If
'Bo sung 28.7.2010:
If Left(Tb, 1) = "-" And IsNumeric(Mid(Tb, 2, 1)) Then
Tb = Left(Target, InStr(Target, "=") - 1)
GoTo KoCoDienGiai
Else: Exit Sub
End If
End If
'Sum Khoi Luong:
'End If
'-----------------------------
Exit Sub
'---------------------------------------
LOI:
Target.Characters(InStr(Target, ":") + 1, Len(Target)).Font.ColorIndex = 3
End Sub
TUY NHIÊN MÌNH CHỈ SỬ DỤNG TRONG MỘT SHEET CỦA MỘT FILE NÀO ĐÓ, KHI MỞ FILE KHÁC THÌ KHÔNG SỬ DỤNG ĐƯỢC
MÌNH NHỜ CÁC CAO THỦ SỬA GIÚP ĐỂ ĐƯA VÀO MODULES VÀ TẠO MỘT FILE MAXCRO, MÌNH KHÔNG CẦN PHẢI COPY ĐOẠN CODE NÀY VÀO NỮA,
CẢM ƠN NHIỀU
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Find("=", , , 2) Is Nothing Then Exit Sub
If Target.Offset(1, 0) <> "" And Target.Offset(1, -1) <> "" Then Target.Offset(1, 0).EntireRow.Insert
If InStr(Target, ": ") Then
'Ta = Right(Target, Len(Target) - InStr(Target, ":") - 1)
Ta = Mid(Target, InStrRev(Target, ":") + 1, InStr(Target, "=") - InStrRev(Target, ":") - 1) ' <-- sua 02.04.2011
Tb = Replace(Ta, " ", "")
KoCoDienGiai:
On Error GoTo LOI
Tc = Replace(Tb, ",", ".")
Tc = Replace(Tc, "x", "*")
Tc = Replace(Tc, "=", "")
Khoiluong = Round(Evaluate("=" & Tc), 3)
'Noi gia tri voi ket qua:
If Right(Target, 1) = "=" Or Khoiluong <> Replace(Right(Target, Len(Target) - InStr(Target, "=")), " ", "") Then ' <-- them
With Target
'.Value = .Value & " " & Khoiluong
.Value = Left(.Value, InStr(.Value, "=")) & " " & Khoiluong
.Font.ColorIndex = 9
.Characters(InStr(.Value, "=") + 1, Len(.Value)).Font.ColorIndex = 5
End With
Else: '<-- them
With Target
.Font.ColorIndex = 9
.Characters(InStr(.Value, "=") + 1, Len(.Value)).Font.ColorIndex = 5
End With
Exit Sub '<-- them
End If
Else:
Tb = Replace(Target, " ", "")
If IsNumeric(Left(Tb, 1)) Or Left(Tb, 1) = "(" Then
Tb = Left(Target, InStr(Target, "=") - 1) ' <-- them
GoTo KoCoDienGiai
'Else: Exit Sub
End If
'Bo sung 28.7.2010:
If Left(Tb, 1) = "-" And IsNumeric(Mid(Tb, 2, 1)) Then
Tb = Left(Target, InStr(Target, "=") - 1)
GoTo KoCoDienGiai
Else: Exit Sub
End If
End If
'Sum Khoi Luong:
'End If
'-----------------------------
Exit Sub
'---------------------------------------
LOI:
Target.Characters(InStr(Target, ":") + 1, Len(Target)).Font.ColorIndex = 3
End Sub
TUY NHIÊN MÌNH CHỈ SỬ DỤNG TRONG MỘT SHEET CỦA MỘT FILE NÀO ĐÓ, KHI MỞ FILE KHÁC THÌ KHÔNG SỬ DỤNG ĐƯỢC
MÌNH NHỜ CÁC CAO THỦ SỬA GIÚP ĐỂ ĐƯA VÀO MODULES VÀ TẠO MỘT FILE MAXCRO, MÌNH KHÔNG CẦN PHẢI COPY ĐOẠN CODE NÀY VÀO NỮA,
CẢM ƠN NHIỀU