Kết quả 1 đến 5 của 5

Chủ đề: Dùng macro để cho ra kết quả của sự khác biệt giữa các sheet.

  1. #1
    diennguyen59 Guest

    Dùng macro để cho ra kết quả của sự khác biệt giữa các sheet.

    Xin Chào các Cao Thủ !!!
    Hiện tại mình gặp sự khó khăn trong VBA của excel.
    mình có 1 file dữ liệu gồm nhiều danh sách từ nhiều nguồn khác nhau,mình đã tập hợp lại được tất cả nhưng xử lý dữ liệu không cho được như mong muốn.
    trong file đính kèm mình có ví dụ và cho ra kết quả nhưng mình làm không được(khi dùng hàm thì bình thường nhưng dữ liệu quá lớn nên không thể nên cần dùng Macro)
    Điều Kiện:trong Danh sách 01(Cột A,Cột C) đối chiếu với Danh Sách 02(Cột G,Cột H) nếu có sự khác nhau giữa 2 danh sách thì cho ra kết quả như file đính kèm.

    rất mong được sự giúp đở của các Cao thủ.
    Toàn.Thks

  2. #2
    zinzin8x Guest
    Trích dẫn Gửi bởi TOÀN
    Xin Chào các Cao Thủ !!!
    Hiện tại mình gặp sự khó khăn trong VBA của excel.
    mình có 1 file dữ liệu gồm nhiều danh sách từ nhiều nguồn khác nhau,mình đã tập hợp lại được tất cả nhưng xử lý dữ liệu không cho được như mong muốn.
    trong file đính kèm mình có ví dụ và cho ra kết quả nhưng mình làm không được(khi dùng hàm thì bình thường nhưng dữ liệu quá lớn nên không thể nên cần dùng Macro)
    Điều Kiện:trong Danh sách 01(Cột A,Cột C) đối chiếu với Danh Sách 02(Cột G,Cột H) nếu có sự khác nhau giữa 2 danh sách thì cho ra kết quả như file đính kèm.

    rất mong được sự giúp đở của các Cao thủ.
    Toàn.Thks
    Cụ thể là cột nào so sánh với cột nào vậy bạn.
    Cột A đâu có khớp với cột G và C cũng đâu có khớp với cột H

  3. #3
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    xin lổi Danh Sách 01(cột A,cột C)so sánh với Danh sách 02(Cột F,Cột G)

  4. #4
    vanthinh1088 Guest
    Trích dẫn Gửi bởi TOÀN
    xin lổi Danh Sách 01(cột A,cột C)so sánh với Danh sách 02(Cột F,Cột G)
    Kiểu dữ liệu này thì có thể như vầy:

    Mã nguồn PHP:
    Private Sub CommandButton1_Click() Dim sArr(), dArr(), I As Long, J As Long, K As Long sArr = Range([A5], [A65536].End(xlUp)).Resize(, 9).Value ReDim dArr(1 To UBound(sArr, 1), 1 To 4) For I = 1 To UBound(sArr, 1) If sArr(I, 1) & sArr(I, 3) <> sArr(I, 6) & sArr(I, 7) Then K = K + 1 For J = 1 To 4 dArr(K, J) = sArr(I, J) Next J End If Next I [K7].Resize(K, 4) = dArr End Sub  

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi TOÀN
    xin lổi Danh Sách 01(cột A,cột C)so sánh với Danh sách 02(Cột F,Cột G)
    Mã:
    Private Sub CommandButton1_Click()
    Application.Run "Loc_DL"
    End Sub
    và dán cái này vào module

    Mã:
    Public Sub Loc_DL()
    Dim DL, kq As Range, r As Long
    
    With CreateObject("scripting.dictionary")
    DL = Sheet1.Range("F5:G17")
    For r = 1 To UBound(DL)
    .Add DL(r, 1), DL(r, 2)
    Next r
    
    Set DL = Sheet1.Range("A4:D20")
    Set kq = DL.Rows(1)
    
    For r = 2 To DL.Rows.Count
    If Not .exists(DL(r, 1).Value) Then
    Set kq = Union(kq, DL.Rows(r))
    Else
    If DL(r, 3) <> .Item(DL(r, 1).Value) Then
    Set kq = Union(kq, DL.Rows(r))
    End If
    End If
    Next r
    End With
    
    kq.Copy Sheet1.Range("K6")
    Sheet1.Range("K6").CurrentRegion.Interior.ColorIndex = xlNone
    Sheet1.Range("K6").CurrentRegion.Columns.AutoFit
    
    End Sub

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •