返回列表 上一主題 發帖

[發問] 多條件篩選&ListBox

回復 35# c_c_lai

對
#23才是對的


此 "比對" 是完全適用於 第 1 種、與    第 2 種 嗎?

沒錯!!!

TOP

回復 37# c_c_lai


    對,每次都要做這五種!!!

TOP

回復 39# c_c_lai


    不用
   換個方式說
   假設BA欄位的意思是籃子
   我只是要選出一樣的籃子的東西
   所以選出來不管 P Q R的
   只要是同個籃子就可以
   這裡的目的只是我先使用"TR排機&產出"
   找出這筆數據在"材料"是使用哪個籃子
   找到籃子之後,我要做的就是,我想知道用這個籃子的有哪些人
   所以不用比對PQR
    PQR只是後面要對應到工作表2的時候要用

TOP

回復 41# c_c_lai


    C大,每一種都有可能發生,因為每天"材料"和"工作表2"的資訊都會更新!!!

TOP

回復 45# c_c_lai

ATMEL, TQFP, 14X14, 100
此筆就有找到2個
ATMEL        TQFP        14X14        100        10495        21307        184        31986
ATMEL        TQFP        14X14        64        34295        22306        1574        58175

  C大是不是"材料"在找"工作表2"
  沒把簡碼再轉回來"全碼"??

TOP

回復 47# c_c_lai


    對壓
    你注意看,只有材料是簡碼
    TR排機&產出 找材料   需要找簡碼
    材料找工作表2又要轉全碼!!!
    附檔我研究一下下唷><

TOP

回復 48# c_c_lai


    抱歉我還是用附檔上面提供的欄位名稱敘述好了
    我好像講給自己聽得懂的哈哈
    "TR排機&產出"  去找  "材料"   要透過"Cus簡碼"的    CODE   

     "材料"     去找"工作表2"    要透過"Cus簡碼"的    CUST_GROUP
   
   

    您的附檔,應該是正確的答案

TOP

回復 54# c_c_lai


    沒錯!!!!
    第一種篩法結果是對的!!!!太厲害了C大!!!!

TOP

回復 56# c_c_lai


   
     那ㄟ安捏...
  1. Sub AuditCustPkg(Adt_Rng As Range)
  2.     Dim c As Range, frstAddr As String, tf As Boolean
  3.     Dim cts As Integer, ct2 As Integer
  4.     Dim Arr As Variant, Ar2 As Variant, Ar3 As Variant
  5.    
  6.     With Sheets("Cus簡碼")
  7.         Set c = .[B:B].Find(Adt_Rng.Offset(, -1).Value, , , 1)  ' "TR排機&產出" Customer 比對 "Cus簡碼" CUST_GROUP
  8.         
  9.         If Not c Is Nothing Then
  10.             frstAddr = c.Address
  11.             Do
  12.                 If IsEmpty(Arr) Then ReDim Arr(1 To 1) Else ReDim Preserve Arr(1 To UBound(Arr) + 1)
  13.                 Arr(UBound(Arr)) = Array(c.Offset(, -1).Text, c.Text)
  14.                
  15.                 Set c = .[B:B].FindNext(c)
  16.             Loop While Not c Is Nothing And c.Address <> frstAddr
  17.         End If
  18.     End With
  19.    
  20.     If Not IsEmpty(Arr) Then
  21.         With Sheets("材料")
  22.             For cts = LBound(Arr) To UBound(Arr)
  23.                 Set c = .[M:M].Find(Arr(cts)(0), , , 1)      '  "Cus簡碼" CODE 比對 "材料" CUST_CODE
  24.                
  25.                 If Not c Is Nothing Then      '  Arr(cts)(0) = "ASM" : Variant/String
  26.                     frstAddr = c.Address
  27.                     Do
  28.                         '  以 "TR排機&產出" 的  "F"、"G"、"H" 為條件,去 "材料" 找到對應的數據。
  29.                         '  第 1 種 (相同 Cust (c.Value) & PKG (c.Offset(, 3))  & B/S (c.Offset(, 4)) & L/C (c.Offset(, 5)))
  30.                         If c.Offset(, 3) = Adt_Rng.Value And c.Offset(, 4) = Adt_Rng.Offset(, 1).Value And c.Offset(, 5) = CStr(Adt_Rng.Offset(, 2).Value) Then
  31.                             If IsEmpty(Ar2) Then ReDim Ar2(1 To 1) Else ReDim Preserve Ar2(1 To UBound(Ar2) + 1)
  32.                             Ar2(UBound(Ar2)) = Array(c.Text, Arr(cts)(1), c.Offset(, 3).Text, c.Offset(, 4).Text, c.Offset(, 5).Text, c.Offset(, 39).Text, c.Offset(, 40).Text)
  33.                         End If
  34.                         
  35.                         Set c = .[M:M].FindNext(c)
  36.                     Loop While Not c Is Nothing And c.Address <> frstAddr
  37.                 End If
  38.                
  39.                 If Not IsEmpty(Ar2) Then
  40.                     For ct2 = LBound(Ar2) To UBound(Ar2)
  41.                         '  以 工作表 "TR排機&產出" 的  "F"、"G"、"H" 為條件, 去 工作表 "材料" 找到對應的數據;
  42.                         '  然後找到這筆數據的 "CARRIER1 P/N",然後只要一樣 "CARRIER1 P/N" 的都列出來。
  43.                         Set c = .[BA:BA].Find(Ar2(ct2)(6), , , 1)   '  CARRIER1 P/N ("BA")  Ar2(ct2)(6) = "4100998111" :
  44.                         
  45.                         If Not c Is Nothing Then   ' PKG (c.Offset(, -37)) 、 BODU_SIZE (c.Offset(, -36))
  46.                             frstAddr = c.Address   ' CUST_CODE (c.Offset(, -40).Text)、, LEAD_COUNT (c.Offset(, -35).Text)
  47.                             Do
  48.                                 '  同步地排除原先在 工作表 "TR排機&產出" 點選的 Package。(Customer、Package、Bodysize)
  49.                                 '  修正以 "Cus簡碼" Arr 之第一組 (Arr(1)(0)) 作為判斷依據。
  50.                                 tf = (c.Offset(, -40).Text = Arr(1)(0) And c.Offset(, -37) = Adt_Rng.Value And c.Offset(, -36) = Adt_Rng.Offset(, 1).Value)
  51.                                 If Ar2(ct2)(1) <> "" And tf = False Then
  52.                                     If IsEmpty(Ar3) Then ReDim Ar3(1 To 1) Else ReDim Preserve Ar3(1 To UBound(Ar3) + 1)
  53.                                     Ar3(UBound(Ar3)) = Array(Ar2(ct2)(1), c.Offset(, -37).Text, c.Offset(, -36).Text, c.Offset(, -35).Text, c.Text)
  54.                                 End If

  55.                                 Set c = .[BA:BA].FindNext(c)
  56.                             Loop While Not c Is Nothing And c.Address <> frstAddr
  57.                         End If
  58.                     Next ct2
  59.                 End If
  60.             Next cts
  61.         End With
  62.         
  63.         If Not IsEmpty(Ar3) Then CustPkg (Ar3)
  64.     End If
  65.    
  66.     Set Arr = Nothing
  67.     Set Ar2 = Nothing
  68.     Set Ar3 = Nothing
  69. End Sub
複製代碼

TOP

回復 58# c_c_lai

     對啊我放在裡面耶><

    TTS0000CC.rar (805.86 KB)

TOP

        靜思自在 : 口說一句好話,如口出蓮花;口說一句壞話如口吐毒蛇。
返回列表 上一主題