Làm sao để khi số liệu trùng sẽ nhảy về đứng cạnh nhau?

Liên hệ QC

wallke82

Thành viên mới
Tham gia
8/10/07
Bài viết
4
Được thích
1
Lam sao de khi so lieu trung se nhay ve dung canh nhau.

Các pác cho em hỏi:
Em có 2 cột số liệu, trong đó 1 cột có sẵn các số, 1 cột trắng để copy những số mới vào. Giờ dùng hàm gì để khi em copy số mới vào cột thứ 2, những số trùng của cột 1 và cột 2 sẽ tự động nhảy về đứng cạnh nhau.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Bạn tham khảo macro này nha!

Mã:
Option Explicit: Option Base 1
[b]
Sub CopyTo() [/b]
    Range("Chuan").Select
    Selection.Copy
    Range("C2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("DuLieu").Select
    Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Dim lRowB As Long, lRowC As Long, iJ As Long, iZ As Long
    lRowB = Cells(65432, 2).End(xlUp).Row
    lRowC = Cells(65432, 3).End(xlUp).Row
    ReDim DaChep(lRowC):    ReDim MDuLieu(lRowB + lRowC)
    Dim Temp, iDem As Long
    iDem = 1
    For iJ = 2 To lRowB
        Temp = Cells(iJ, 2)
        iDem = 1 + iDem
        MDuLieu(iDem) = Temp
        For iZ = 2 To lRowC
            If Cells(iZ, 3) = Temp And DaChep(iZ) = False Then
                iDem = iDem + 1
                MDuLieu(iDem) = Temp
                DaChep(iZ) = True
            End If
        Next iZ
    Next iJ
    For iZ = 2 To lRowC
        If DaChep(iZ) = False Then
            iDem = 1 + iDem:        MDuLieu(iDem) = Cells(iZ, 3)
        End If
    Next iZ
    For iJ = 2 To iDem
        Cells(iJ, 4) = MDuLieu(iJ)
    Next iJ
    
[b]End Sub[/b]
 
Upvote 0
Trời đất mèng đéc ơi, các pác giải thích vậy em sao hiểu nủi. Em mới tập tễnh vào nghề thôi, em gửi file kèm minh họa các pác thao tác trên đó rồi gửi lại giúp em với nhé!

Thanks các pác nhìu nhìu...!!!
 

File đính kèm

Upvote 0
wallke82 đã viết:
Trời đất mèng đéc ơi, các pác giải thích vậy em sao hiểu nủi. Em mới tập tễnh vào nghề thôi, em gửi file kèm minh họa các pác thao tác trên đó rồi gửi lại giúp em với nhé!

Thanks các pác nhìu nhìu...!!!
Bạn nhập thử 1 vài dòng trong cột C thử, chưa hiểu yêu cầu, bạn thử chức năng sort chứ.
 
Upvote 0
Xem thử nha!

Mã:
Option Explicit:  Option Base 1
[b]
Sub TrungDL()[/b]
 Dim LrowC As Long, lRowB As Long
 Dim iJ As Long, iZ As Long, lDem As Long
 
 LrowC = Cells(65432, 3).End(xlUp).Row
 lRowB = Cells(65432, 2).End(xlUp).Row
 ReDim CoPyDL(LrowC + lRowB):  ReDim Mau(LrowC + lRowB) As Boolean
 lDem = 1
 For iJ = 2 To LrowC
    lDem = 1 + lDem
    CoPyDL(lDem) = Cells(iJ, 3)
    For iZ = 2 To lRowB
        If Cells(iZ, 2) = Cells(iJ, 3) Then
            lDem = lDem + 1
            CoPyDL(lDem) = Cells(iZ, 2)
            Mau(lDem) = True
        End If
    Next iZ
 Next iJ
 For iJ = 2 To lDem
    Cells(iJ, 3) = CoPyDL(iJ)
    If Mau(iJ) Then Cells(iJ, 3) = Cells(iJ, 3) & "<="
 
 Next iJ
[b]End Sub[/b]
 

File đính kèm

Upvote 0
Theo tôi hiểu cái từ "đứng cạnh" chắc là khi nhập 1 MA, nếu dò vào cột B thấy có thì dời nó đến nằm ngang hàng với thằng trong cột B...
VD trong cột B có em TUAN009.. nằm ở cell B15... giờ giã sử tại C2 gõ vào TUAN009 thì nó sẽ dời em này tới C15 (ngang hàng với B15)
Tôi đoán là vậy! Chẳng biết đúng ko?
 
Upvote 0
Bất quá tam
Hãy nhập biển số xe vô 'D1'
Mã:
  Option Explicit
[b]
Private Sub Worksheet_Change(ByVal Target As Range)[/b]
    
    If Not Intersect(Target, Cells(1, 4)) Is Nothing Then
        Dim TValue As Variant, lRow As Long, iJ As Long
        
        TValue = UCase(Target)
        Application.ScreenUpdating = False
        lRow = Cells(65432, 2).End(xlUp).Row
        For iJ = 2 To lRow
            If UCase(Cells(iJ, 2)) = TValue Then
                Cells(iJ, 3) = TValue:          Exit Sub
            End If
        Next iJ
        End If
[b]End Sub [/b]
 
Upvote 0
Nói thật code của bác SA em chỉ hiểu dc mấy chổ:
-If Not Intersect đễ kiểm tra sự giao nhau của 2 vùng
-For thì tàm tạm hiễu
-UCase là gì thật sự ko biết
Hic...
 
Upvote 0
Nói thật code của bác SA em chỉ hiểu dc mấy chổ:
Còn
-UCase là gì thật sự ko biết
Hic...
(/iết bông đó Tuấn à!
Mình sợ người nhập đánh chữ thw2, nhưng máy lưu chữ bông thì khó ra!
/)/ói cho &ui rằng, Hàm này mình lấy bên access qua đó!

)(&&@@
 
Upvote 0
SA_DQ đã viết:
(/iết bông đó Tuấn à!
Mình sợ người nhập đánh chữ thw2, nhưng máy lưu chữ bông thì khó ra!
/)/ói cho &ui rằng, Hàm này mình lấy bên access qua đó!

)(&&@@

Đây là hàm trong VBA thôi (VBA thì toàn bộ Office đều có) bác ạ, chẳng phải đưa từ Access qua đâu.

Chữ BÔNG mà em dịch mãi, hồi sau mới biết là chữ HOA. Chắc sau này bác dùng chữ NỤ là chết em luôn quá !! Híc

To Anhtuan : Đây là hàm viết chữ hoa tương tự như Upper thôi mà.


Thân!
 
Upvote 0
Web KT

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

Back
Top Bottom