Board logo

標題: 關於資料比對 [打印本頁]

作者: eric093    時間: 2013-7-30 08:23     標題: 關於資料比對

我以for next 雙迴圈及if判斷比對二個sheets廠商代號與貨物代號
的資料後,若二欄資料相符者,我不處理,若不符者,將sheet1的該欄位資料回寫在sheet3,
但是,我只寫的出,資料相符則回寫,資料不符者怎麼寫呢?
以下範例來說,應該只會有sheet1的第三列資料需要回寫(22033107            C)
For i = 2 To 3
For j = 2 To 5

If Sheets("sheet2").Cells(j, 1) = Sheets("sheet1").Cells(i, 1) _
    And Sheets("sheet2").Cells(j, 2) = Sheets("sheet1").Cells(i, 2) Then

    -----------------------??-------------------------
End If


Next
Next
End Sub

sheet1
廠商代號        貨物代號
25881846     D
22033107           B
22033107            C


sheet2
廠商代號        貨物代號
21155572     A
22033107            B
24599073            C
25881846     D
作者: luhpro    時間: 2013-7-30 20:41

回復 1# eric093
  1. Sub nn()
  2.   Dim lRow As Long, lR As Long
  3.   Dim d

  4.   Set d = CreateObject("Scripting.Dictionary")
  5.   lRow = 2
  6.   With Sheets("Sheet2")
  7.     Do While .Cells(lRow, 1) <> ""
  8.       d(.Cells(lRow, 1) & "-" & .Cells(lRow, 2)) = lRow
  9.       lRow = lRow + 1
  10.     Loop
  11.   End With
  12.   
  13.   lRow = 2
  14.   lR = 1
  15.   With Sheets("Sheet1")
  16.     Do While .Cells(lRow, 1) <> ""
  17.       If d(.Cells(lRow, 1) & "-" & .Cells(lRow, 2)) = "" Then
  18.         Range(.Cells(lRow, 1), .Cells(lRow, 2)).Copy Sheets("Sheet3").Cells(lR, 1)
  19.         lR = lR + 1
  20.       End If
  21.       lRow = lRow + 1
  22.     Loop
  23.   End With
  24. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)