希望有人可以幫助我 - 我一直在通過論壇閱讀幾個小時,並已發現一些代碼,並一直在調整它們,但無法弄清楚如何使它們適用於我。VBA比較多行並找到錯誤匹配的數據
我有一個包含2個工作表的文件。我需要從工作表1中查看B列(userid),D(日期),G(時間),並查找所有不匹配工作表2列A(userid),B(日期),C(時間)並將所有非將工作表1中的數據(所有行/列)與工作表3匹配。我走了一個數組公式的路線,但要求想要更乾淨的東西,只顯示在一張單獨的表中不匹配的信息,所以我認爲VBA將是最簡單的。
示例數據文件:https://docs.google.com/file/d/0B-05LU9z79UTQUs3QnRSSUZETmM/edit
Worksheet1
Associate ID Organization Name Original Start Date Segment Start Date Segment End Date Time
83010 abc 4/8/2014 3/31/2014 4/1/2014 465
89551 abc 4/10/2014 4/1/2014 4/1/2014 30
90111 abc 4/9/2014 4/7/2014 4/7/2014 30
90136 abc 4/9/2014 4/7/2014 4/7/2014 445
Worksheet2
ED_EMP_NB SCHED_DT DURATION_MIN_AM
083010 4/8/2014 465
089551 4/10/2014 60
090111 4/9/2014 60
090136 4/9/2014 445
UPDATE: 所以我把你的代碼tmoore82和更新,以參考表(3)和偏移號碼匹配的行(我相信)。它拉回了14個非匹配行中的7個。你能幫我找到錯誤嗎?
Sub Test2()
Dim rowCount1 As Long
Dim rowCount2 As Long
''EDITED TO CALL ON SHEET 3
rowCount1 = ThisWorkbook.Sheets(1).Range("B20").SpecialCells(xlCellTypeLastCell).Row
rowCount2 = ThisWorkbook.Sheets(3).Range("B2").SpecialCells(xlCellTypeLastCell).Row
Dim rng1 As Range
Dim rng2 As Range
''EDITED TO CALL ON SHEET 3
Set rng1 = ThisWorkbook.Sheets(1).Range("B20:B" & rowCount1)
Set rng2 = ThisWorkbook.Sheets(3).Range("B2:B" & rowCount2)
Dim currentRow As Long
currentRow = 2
''UPDATED OFFSET TO MATCH ROWS IN SHEET 3
For Each cell In rng1.Cells
For Each cell2 In rng2.Cells
If cell2.Value <> cell.Value And cell2.Offset(0, 5).Value <> cell.Offset(0, 5).Value And cell2.Offset(0, 2).Value <> cell.Offset(0, 2).Value Then
ThisWorkbook.Sheets(1).Rows(cell.Row).Copy Destination:=ThisWorkbook.Sheets(4).Range("A" & currentRow)
currentRow = currentRow + 1
GoTo NextIteration
End If
Next cell2
NextIteration:
Next cell
End Sub
你有什麼已經嘗試過?請給我們看一些代碼。 –
我將它添加到我的主要問題。感謝您看看它。我在這裏找到了代碼,並試圖調整它,但沒有得到它的工作。 –
@ user3632551請使用相應的格式按鈕來格式化您的代碼以便於閱讀。(它看起來像是一個'{}')。另外,不要只是在這裏轉儲代碼,而是突出顯示哪些部分會導致問題/與預期輸出不同。 –