Board logo

標題: A表單筆資料查詢B表(已解, 感謝register313) [打印本頁]

作者: XDshining    時間: 2012-4-27 12:13     標題: A表單筆資料查詢B表(已解, 感謝register313)

本帖最後由 XDshining 於 2012-4-27 17:56 編輯

前輩們好:
我有一筆資料需要做比對,但由於資料量有上萬筆,因此用手動的方式要做很久。
在版上爬文有找到跟我的需求很類似的帖子如下:
[發問] A表每單筆資料去查詢B表 得出多列資料 複製到C表 [0613]成功嚕
也有試過上面的巨集語法去跑看看,不過跑到後來出現
『執行階段錯誤'5':
程序呼叫或引數不正確』

我想應該只是某個環節出了問題,不過我對EXCEL很不熟,所以也無從修正起。
===============
我的需求主要描述如下:
sheet1的A欄位內容會在sheet2的A欄位出現,不過sheet2的資料有上萬筆,
我想要在sheet2的A欄位找出符合sheet1的A欄位的內容,並將符合的內容sheet2的A&B欄位同時出現在sheet3。
附件是我用手動方式篩選出來的,由於還有其他筆資料要比對,因此想問問看是否有其他方式可以解決。
(原始資料就是sheet1&sheet2的內容,希望產生出sheet3的內容,之後sheet1的內容會變動)
[attach]10702[/attach]
簡例:[attach]10701[/attach]
作者: mark15jill    時間: 2012-4-27 14:41

回復 1# XDshining


    您有蒐尋過文章?

據我所知  論壇上文章類似的就有 四筆以上..
問我為啥知道,其中有一筆是我問的..
作者: register313    時間: 2012-4-27 16:51

回復 1# XDshining
  1. Sub aa()
  2. Dim Ar() As String
  3. Set d = CreateObject("scripting.dictionary")
  4. With Sheet1
  5.   For Each A In .Range(.[A2], .[A2].End(xlDown))
  6.     d.Add A.Value, A.Value
  7.   Next
  8. End With
  9. With Sheet2
  10.   C = 0
  11.   For Each A In .Range(.[A2], .[A2].End(xlDown))
  12.     If d.exists(A.Value) Then
  13.        C = C + 1
  14.        ReDim Preserve Ar(1 To 2, 1 To C)
  15.        Ar(1, C) = A
  16.        Ar(2, C) = A.Offset(0, 1)
  17.     End If
  18.   Next
  19. End With
  20. Sheet3.Rows("2:65536") = ""
  21. Sheet3.[A2].Resize(C, 2) = Application.Transpose(Ar)
  22. End Sub
複製代碼

作者: XDshining    時間: 2012-4-27 17:54

回復 2# mark15jill


    感謝m大的教誨, 我承認我爬的文不夠多.
透過m大的提醒我才意識到我忽略了Excel一般區裡豐富的資料, 在此先致上最深的歉意.

不過我有提到我對EXCEL真的不熟, 所以找到的類似文章中的做法, 我也還是看不太懂.
跑出來的錯誤訊息也是搞不懂它是什麼意思.
我想我對EXCEL程式還需要做更多的鑽研...抱歉讓版上的大大看笑話了
作者: XDshining    時間: 2012-4-27 17:55

回復 3# register313


    感謝r大的協助!!!(跪
作者: mark15jill    時間: 2012-4-30 08:06

本帖最後由 Hsieh 於 2012-4-30 08:41 編輯

回復 4# XDshining

基本上 很多人都會像你一樣,連找都沒找就發問(我之前也是><
可是實際上 這樣會造成系統資源的浪費
也會造成其他大大們的困擾..
雖說每種問題需求不同
但是解答方式大同小異....


(懺悔中




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