toandiennuoc123
Thành viên thường trực




- Tham gia
- 7/3/12
- Bài viết
- 239
- Được thích
- 9
Private Sub Worksheet_Change(ByVal Target As Range)
If (Intersect(Target, [B9]) Is Nothing) Or Target(1) > 99 Then Exit Sub
Dim k As Long, Sig As Long
k = Target.Value
Sig = 1
If k < 0 Then
k = -k
Sig = -1
End If
Me.Range("bdulieu")((k Mod 10) + 1, (k \ 10) + 1) = Me.Range("bdulieu")((k Mod 10) + 1, (k \ 10) + 1) + Sig
Target(1).Select
End Sub
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B9]) Is Nothing Then
Dim sRng As Range, Rng As Range
Set Rng = [H20].Resize(10, 10)
Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
With sRng.Offset(-11)
.Value = .Value + 1
.Interior.ColorIndex = 34 + sRng.Column Mod 10
End With
End If
End If
End Sub
Cái code này chạy ngon lành tuy chỉ bị mỗi cái là nhập sai thì không sửa được, mong bạn giúp đỡ,"cho phép nhập giá trị âm giảm số lần nhập (trong trường hợp nhỡ nhập sai)." cám ơn bạnPHP:Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, [B9]) Is Nothing Then Dim sRng As Range, Rng As Range Set Rng = [H20].Resize(10, 10) Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole) If Not sRng Is Nothing Then With sRng.Offset(-11) .Value = .Value + 1 .Interior.ColorIndex = 34 + sRng.Column Mod 10 End With End If End If End Sub
Với dữ liệu kiểu text như bạn nói:Cái code này chạy ngon lành tuy chỉ bị mỗi cái là nhập sai thì không sửa được, mong bạn giúp đỡ,"cho phép nhập giá trị âm giảm số lần nhập (trong trường hợp nhỡ nhập sai)." cám ơn bạn
Thì nếu thêm dấu "-" phía trước để giảm số lần phải thêm điều kiện trong code thôi.Lấy VD bằng số cho dễ hiểu, trong thực tế thì có cả chữ ( ABD09, MN15,v…v....)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B9]) Is Nothing Then
Dim sRng As Range, Rng As Range, Tem As String, N As Long
If Left(Target, 1) = "-" Then
N = -1: Tem = Mid(Target, 2, 100)
Else
N = 1: Tem = Target.Value
End If
Set Rng = [H20].Resize(10, 10)
Set sRng = Rng.Find(Tem, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
With sRng.Offset(-11)
.Value = .Value + N
.Interior.ColorIndex = 34 + sRng.Column Mod 10
End With
End If
Set Rng = Nothing
Set sRng = Nothing
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If (Intersect(Target, [B9]) Is Nothing) Or Target(1) > 99 Then Exit Sub
Dim k As Long, Sig As Long
k = Target.Value
Sig = 1
If k < 0 Then
k = -k
Sig = -1
End If
Me.Range("bdulieu")((k Mod 10) + 1, (k \ 10) + 1) = Me.Range("bdulieu")((k Mod 10) + 1, (k \ 10) + 1) + Sig
Target(1).Select
End Sub
Do GPE tự xóa mất dấu chia nguyên (\), . . .
. . . [ /php] nó chén; Chứ không fải GPE.COM chén đâu mà đổ oan cho hắn;
Trong ~ trường hợp như vậy, mình fải chuyển sang xài [Code ]. . . [/code]
Thân!