Board logo

標題: [發問] 如何用VBA搜尋兩工作表資料 [打印本頁]

作者: ansonwen0107    時間: 2010-7-24 18:37     標題: 如何用VBA搜尋兩工作表資料

本帖最後由 ansonwen0107 於 2010-7-24 19:50 編輯

請各位大大幫忙..很急~

目前有兩個產品類別 ,其目前兩產品分別在不同工作表 sheet A ,sheet B
(A產品與B產品流程是不一樣 )


sheetA : (目前產品A的現狀)

站點     產品批號 目前狀態 處置結果
yy1     aa9x10    hold            P
yy2     aa9x20    wait            Q
yy3     aa9x60    run             S
yy5     aa9x80    hold            P
.              .              .                 .
.              .              .                 .
.              .              .                .
.              .              .                .
yy99  aa9x81       run             Q

=====================

sheetB : (目前產品B的現狀)

站點              產品批號          目前狀態     處置結果
zz1              aa7x11         hold            P
zz5              aa7x21         wait            Q
zz3              aa7x61         run              S
zz6              aa7x81         hold            P
.                      .                   .              .
.                      .                   .              .
.                      .                   .              .
.                      .                   .              .
zz81           aa7x82          run           Q

========================
Sheet C: ( 依使用者輸入產品批號 ,帶出 站點 / 目前狀態 / 處置結果 )

產品批號 站點 目前狀態 處置結果
aa7x21
aa6x34
aa7x21
aa6x34
aa7x21
aa6x34
.
.
.
aa7x23

目前想要在另一工作表 sheetC 輸入一些產品批號 , 去搜尋SheetA ,
及Sheet B 相同的批號 , 且能帶出相同的站點 , 目前狀況及處置結果欄位
若sheetC 輸入一些產品批號,在SheetA 及Sheet B 中找不到 , 則在
sheetC 中的相對產品批號的目前狀況帶出 "ok" 訊息
( 另外所有sheetA , B, C 的產品批號數量都是不固定相同 )
作者: GBKEE    時間: 2010-7-24 19:37

回復 1# ansonwen0107
請附上範例檔 並說明之
作者: Hsieh    時間: 2010-7-25 00:09

回復 1# ansonwen0107
  1. Sub searchdata()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. For Each sh In Sheets(Array("a", "b"))
  4.    With sh
  5.      For Each a In .Range(.[B2], .[B65536].End(xlUp))
  6.         d(a.Value) = Array(a.Offset(, -1).Value, a.Offset(, 1).Value, a.Offset(, 2).Value)
  7.      Next
  8.     End With
  9. Next
  10. With Sheets("尋找")
  11.    For Each a In .Range(.[A2], .[A65536].End(xlUp))
  12.       a.Offset(, 1).Resize(, 3) = ""
  13.       a.Offset(, 1).Resize(, 3) = d(a.Value)
  14.    Next
  15. End With
  16. End Sub
複製代碼

作者: ansonwen0107    時間: 2010-7-25 10:51

回復 3# Hsieh


    謝謝老師~~~對於小弟受用很大~~~~




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