Board logo

標題: [發問] 還是一個比對的問題 [打印本頁]

作者: jesscc    時間: 2011-9-14 22:05     標題: 還是一個比對的問題

我覺得 Excel VBA 比對的寫法真的是超複雜,一直好像都抓不到重點
我要用工作頁Temp的A、B欄和工作頁Sheet1的D、G欄比對。
如果Temp-A欄和Sheet1-D欄相同,就比對它們各自對應的B、G欄(數值),如果數值不同,就在Sheet1-B欄標記出"?"
數值相同就標記出"V",比對不到的就不做任何動作。

我的測試檔比對出來的結果,完全不符所需,我實在也找不出哪裡有問題。
[attach]7803[/attach]
作者: diabo    時間: 2011-9-14 23:03

  1. Sub 資料比對()

  2. For r = 12 To Sheets("Sheet1").[D65536].End(xlUp).Row
  3.      
  4.     With Sheets("Sheet1")
  5.         A = .Cells(r, "D").Value
  6.         B = .Cells(r, "G").Value
  7.     End With
  8.    
  9.     For rr = 1 To Sheets("Temp").[A65536].End(xlUp).Row
  10.    
  11.         If A = Sheets("Temp").Cells(rr, "A").Value Then
  12.         
  13.             If B = Sheets("Temp").Cells(rr, "B").Value Then
  14.                 Sheets("Sheet1").Cells(r, "B").Value = "V"
  15.             Else
  16.                 Sheets("Sheet1").Cells(r, "B").Value = "?"
  17.             End If
  18.         
  19.         End If
  20.    
  21.     Next rr

  22. Next r

  23. End Sub
複製代碼

作者: Hsieh    時間: 2011-9-14 23:13

  1. Sub ex()
  2. Dim A As Range
  3. Application.ScreenUpdating = False
  4. Set d = CreateObject("Scripting.Dictionary")
  5. With Sheets("Temp")
  6.    For Each A In .Range(.[A1], .[A1].End(xlDown))
  7.      d(A.Value) = A.Offset(, 1).Value
  8.    Next
  9. End With
  10. With Sheets("Sheet1")
  11. .[B:B] = ""
  12.   For Each A In .Range(.[D12], .[D65536].End(xlUp))
  13.      If d.exists(A.Value) = True Then
  14.         If A.Offset(, 3) <> d(A.Value) Then
  15.         A.Offset(, -2) = "?"
  16.         ElseIf A.Offset(, 3) = d(A.Value) Then
  17.         A.Offset(, -2) = "V"
  18.         End If
  19.      End If
  20.   Next
  21. End With
  22. Application.ScreenUpdating = True
  23. End Sub
複製代碼
回復 1# jesscc
作者: jesscc    時間: 2011-9-14 23:39

謝謝d大和H大超快速的解決方案
想請問H大
第3、22行有關畫面更新的問題。是否決定於要比對資料量的大小而開啟或關閉。還是說沒必要的話盡可能都關閉。
作者: GBKEE    時間: 2011-9-15 06:57

回復 4# jesscc
有關畫面更新的問題
看個人喜好而已不一定要用的.
作者: jesscc    時間: 2011-9-15 20:56

回復 5# GBKEE


    了解!
謝謝H大和G大。




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