không cho lưu trùng dữ liệu trong cùng một cột. (1 người xem)

  • Thread starter Thread starter thang314
  • Ngày gửi Ngày gửi
Liên hệ QC

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

thang314

Thành viên thường trực
Tham gia
10/1/11
Bài viết
324
Được thích
122
Nghề nghiệp
lại thất nghiệp
có một việc mà vẫn chưa giải quyết được. số là em đã làm được việc không cho nhập trùng dữ liệu vào trong cùng một cột. tuy nhiên, nếu việc nhập thủ công-> ok, nếu việc nhập dữ liệu bằng copy, paste từ file khác về thì không được
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Rng As Range, MyRng As Range, ID As String
    If Target.Column = 1 Then
        ID = UCase(Target.Value)
        Set Rng = Range([a1], [a65536].End(xlUp))
        If ID = "" Or WorksheetFunction.CountIf(Rng, ID) <= 1 Then GoTo ExitSub
        Set MyRng = Rng.Find(ID, LookIn:=xlValues, LookAt:=xlWhole)
        If Not MyRng Is Nothing Then
            MyRng.Offset(, -0).Resize(, 1).Select
            MsgBox "So tai khoan nay:  " & ID & " da ton tai ", , "Thong bao" ',vao ngay: " & MyRng.Offset(, -0).Text
            Target.Select
        End If
    End If
ExitSub:
    Set Rng = Nothing: Set MyRng = Nothing
End Sub
có cách nào mà khi copy, paste vẫn cho paste toàn bộ dữ liệu mà chưa có tại cột A vậy không các bác.( cho lưu những dữ liệu mới, không lưu dữ liệu đã có )
 
Chỉnh sửa lần cuối bởi điều hành viên:
có một việc mà vẫn chưa giải quyết được. số là em đã làm được việc không cho nhập trùng dữ liệu vào trong cùng một cột. tuy nhiên, nếu việc nhập thủ công-> ok, nếu việc nhập dữ liệu bằng copy, paste từ file khác về thì không được
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Rng As Range, MyRng As Range, ID As String
    If Target.Column = 1 Then
        ID = UCase(Target.Value)
        Set Rng = Range([a1], [a65536].End(xlUp))
        If ID = "" Or WorksheetFunction.CountIf(Rng, ID) <= 1 Then GoTo ExitSub
        Set MyRng = Rng.Find(ID, LookIn:=xlValues, LookAt:=xlWhole)
        If Not MyRng Is Nothing Then
            MyRng.Offset(, -0).Resize(, 1).Select
            MsgBox "So tai khoan nay:  " & ID & " da ton tai ", , "Thong bao" ',vao ngay: " & MyRng.Offset(, -0).Text
            Target.Select
        End If
    End If
ExitSub:
    Set Rng = Nothing: Set MyRng = Nothing
End Sub
có cách nào mà khi copy, paste vẫn cho paste toàn bộ dữ liệu mà chưa có tại cột A vậy không các bác.( cho lưu những dữ liệu mới, không lưu dữ liệu đã có )
Tạm thời thử code này với dữ liệu của cột A xem:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim Rng(), Arr(), Dic As Object, I As Long, k As Long, J As Long
Set Dic = CreateObject("Scripting.Dictionary")
    If Target.Column = 1 And Target.Row > 1 Then
        Rng = Sheet1.Range([A1], [A1].End(xlDown)).Value
            ReDim Arr(1 To UBound(Rng, 1), 1 To 1)
                For I = 1 To UBound(Rng, 1)
                    If Not Dic.exists(Rng(I, 1)) Then
                        Dic.Add Rng(I, 1), ""
                            k = k + 1
                            Arr(k, 1) = Rng(I, 1)
                    Else
                        J = J + 1
                    End If
                Next
                    If J Then MsgBox "Da Nhap trung"
            If k Then
                Sheet1.[A1:A65000].ClearContents
                Sheet1.[A1].Resize(k, 1).Value = Arr
            End If
    End If
Application.EnableEvents = True
End Sub
 
Upvote 0
code bác em đã thử. ok. nhưng còn trường hợp " cách dòng mới nhập dữ liệu" thì nó không cho nhập rồi.
 
Upvote 0
code bác em đã thử. ok. nhưng còn trường hợp " cách dòng mới nhập dữ liệu" thì nó không cho nhập rồi.
Thử thay dòng thứ 6:
PHP:
Rng = Sheet1.Range([A1], [A1].End(xlDown)).Value
thành dòng này xem:
PHP:
Rng = Sheet1.Range([A1], Target.Address).Value
---------------
Sao lại nhập cách dòng nhỉ? Code này vẫn chưa đáp ứng được.
Oải thật.
 
Lần chỉnh sửa cuối:
Upvote 0
Thử thay dòng thứ 6:
PHP:
Rng = Sheet1.Range([A1], [A1].End(xlDown)).Value
thành dòng này xem:
PHP:
Rng = Sheet1.Range([A1], Target.Address).Value
---------------
Sao lại nhập cách dòng nhỉ? Code này vẫn chưa đáp ứng được.
Oải thật
.

do em tổng hợp của từng nhân viên, tách dòng ra để còn đối chiếu công việc của từng người để còn trả lương bác à? +-+-+-+, em nhức đầu vấn đề này mà chưa ra..
 
Upvote 0
Bác Ba Tê ơi!

Code của bác hay tuyệt. Bác chỉnh giúp em thêm công thức để em xài được trong công việc của em nhé.

Mục đich em cần là: Dữ liệu của một nhân viên gồm nhiều thông tin, em phải nhập toàn bộ thông tin của nhân viên này trong một dòng. Giờ em cần bác chỉnh công thức làm sao để khi nhập trùng mã số nhân viên ở cột A thì toàn bộ các thông tin của nhân viên đó ở các cột còn lại, cùng vị trí dòng phải xóa luôn. (hiện nay đã xóa ok ở cột A)
.

Thanks Bác,

Minh Béo.
 
Upvote 0
Web KT

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

Back
Top Bottom