Bạn có thể bớt chút thời gian để trình bày lại cho dễ hiểu không ạ?
Một bài viết trình bày dễ hiểu là một bài viết sử dụng hình minh họa trực quan. Một bài viết chỉ toàn chữ sẽ khiến người khác không muốn đọc.
Một bài viết dễ hiểu sẽ giảm thiểu thời gian đọc hiểu cho người khác, bạn sẽ nhanh chóng nhận được hỗ trợ nếu bài viết của bạn là một bài viết dễ hiểu.
Chúng tôi mong bạn hiểu và hợp tác.
Ở Sheet PCGT có đoạn code như sau:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, S, bTest As Boolean
Dim Phong_Loai, phong&, NV$, tmp
Dim fRow&, eRow&, fCol&, eCol&, iR&, jC&, i&, j&, ik&
Const rAddress As String = "J4:N182" 'Dia chi Nhap lieu
Const SoPhong As Long = 16 'So phong thi
Set Rng = Range(rAddress)
If Intersect(Target, Rng) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub 'Chi xet nhap 1 cell
Phong_Loai = Target.Value
If Phong_Loai = Empty Then Exit Sub
bTest = False
If InStr(1, Phong_Loai, ".") > 0 Then
S = Split(Phong_Loai, ".")
If IsNumeric(S(0)) And (S(1) = "1" Or S(1) = "2") Then
phong = CLng(S(0)) 'STT Phong thi
Phong_Loai = phong & "." & S(1)
If phong >= 1 And phong <= SoPhong Then bTest = True
End If
End If
Call TangToc(False)
Target.Select
If bTest = False Then
MsgBox ("Nhap sai Ma Phong_Nhom Giam thi")
Target.Value = Empty '***
Call TangToc(True)
Exit Sub
End If
fRow = Rng.Row: eRow = fRow + Rng.Rows.Count - 1
fCol = Rng.Column: eCol = fCol + Rng.Columns.Count - 1
iR = Target.Row: jC = Target.Column
For j = fCol To eCol
If j <> jC Then
tmp = cells(iR, j).Value 'Phong_Loai
If InStr(1, tmp, ".") > 0 Then
If phong = CLng(Split(tmp, ".")(0)) Then
MsgBox ("Trung phong Mon: " & cells(3, j))
Target.Value = Empty '***
Call TangToc(True)
Exit Sub
End If
End If
End If
Next j
NV = Range("A" & iR).Value
k = 0
For i = fRow To eRow
If i <> iR Then
If InStr(1, cells(i, jC), phong & ".") = 1 Then
If Phong_Loai = cells(i, jC) Then
MsgBox (Phong_Loai & " Nhap trung 2 lan")
Target.Value = Empty '***
Call TangToc(True)
Exit Sub
End If
k = k + 1
If k > 1 Then
MsgBox ("Ma Phong: " & phong & "co hon 2 giam thi")
Target.Value = Empty '***
Call TangToc(True)
Exit Sub
End If
ik = i
End If
End If
Next i
If k = 1 Then
For j = fCol To eCol
tmp = cells(ik, j) 'Phong_Loai
If InStr(1, tmp, ".") Then
If j <> jC Then
tmp = CLng(Split(tmp, ".")(0)) 'Phong
For i = fRow To eRow
If InStr(1, cells(i, j), ".") Then
If tmp = CLng(Split(cells(i, j), ".")(0)) Then
If NV = cells(i, 1) Then
MsgBox ("Trung Giam Thi: " & cells(ik, 8).Value)
Target.Value = Empty '***
Call TangToc(True)
Exit Sub
End If
End If
End If
Next i
End If
End If
Next j
End If
If Target.Value <> Phong_Loai Then Target.Value = Phong_Loai
If iR < eRow Then cells(iR + 1, jC).Select Else cells(fRow, jC + 1).Select
Call TangToc(True)
End Sub
Private Sub TangToc(ByVal bTest As Boolean)
Application.ScreenUpdating = bTest
Application.EnableEvents = bTest
End Sub
em muốn nhập chữ GS1, GS2,..... từ dòng j36 đến n182 mà không được
Const rAddress As String = "J4:N182" mà không được, Báo lỗi như thế này em phải làm sao
Điều kiện: có 2 nhóm Giám thị và một nhóm Giám sát (GS) bốc thăm coi thi (có 4 buổi thi) điều kiện là giám thị nhóm 1 và 2 không coi thi trùng phòng lại và cặp giám thị đó không coi trùng với nhau ở lần coi thi tiếp theo. Tương tự đối với Giám sát cung như vây? Rất mong quý anh giúp em
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy link