返回列表 上一主題 發帖

[發問] 多條件篩選&ListBox

回復 4# c_c_lai

    螢幕中央搞定了!!!!
    StartUpPosition   =  2 就可以了!!XD

TOP

回復 9# c_c_lai

回C大我只是想實驗弄懂這邊是不是這樣改就能改變呈現方式

我本來要實驗把"星號"改成"急貨"

但看來字串會讀不到

所以我就隨便打個XXX實驗哈哈

TOP

本帖最後由 starbox520 於 2016-12-27 10:25 編輯

回復 10# c_c_lai
這邊的話
因為之前跟您說過這樣就叫做BGA
但可能因為
這個字串中間多了空格
導致不能判斷他叫BGA
這邊失算了,我沒料到資料會有空格種狀況Q0Q

TOP

回復 13# c_c_lai

太周到了!!
我還擔心這個Rule沒給你Q0Q
我懂了!!這樣就不會有誤了XD

TOP

回復 15# c_c_lai

對!!!
這邊問一下
我照個改之後
變成"急"  狂疊加><lll   
  1. For i = 2 To UBound(Arr)      '  UBound(Arr) = 1249 : Long
  2.            
  3.             '  (reg.test(Arr(i, 19)) : Arr(i, 19) = "TR1T0.03" (True) / = "PK1T0" (False)) : Boolean
  4.             If Arr(i, 10) = "G" And Arr(i, 18) = "R" And reg.test(Arr(i, 19)) Then
  5.                 '  N 欄 (Trackin time) 的時間,以當前系統時間 + 4HRS
  6.                 If IsDate(Arr(i, 14)) Then
  7.                     If Arr(i, 14) >= Now And Arr(i, 14) < DateAdd("h", 4, Now) Then    ' 當下時間 +4Hrs
  8.                         If Len(Arr(i, 21)) > 0 And Right(.Cells(i, 9), 1) <> "急貨" Then
  9.                             .Cells(i, 9) = .Cells(i, 9) & "急貨"       '  確認是否為急貨單號
  10.                         End If
  11.                         
  12.                         Set rng = Union(rng, .Rows(i))
  13.                     End If
  14.                     '  N 欄內空白無資料
  15.                 ElseIf Len(Arr(i, 14)) = 0 Then
  16.                     '  如 "U" 欄 (急貨單號),有任何值,在 "I" 欄 (Schedule) 加上 * 號
  17.                     If Len(Arr(i, 21)) > 0 And Right(.Cells(i, 9), 1) <> "急貨" Then
  18.                       '  .Cells(i, 9) = .Cells(i, 9) & "*"
  19.                       .Cells(i, 9) = Left(.Cells(i, 9), Len(.Cells(i, 9)) - 1) & "急貨"       '  確認是否為急貨單號
  20.                     End If
複製代碼

TOP

回復 19# c_c_lai


    c大太周到了我還沒檢查到那�奡N幫我想到了~
    真的太感謝你了!!!!!!!!!

TOP

回復 19# c_c_lai


C大請問一下

第2個ListBox,反白後可以按 ctrl+C  複製嗎?

是調整屬性嗎?

TOP

回復 22# c_c_lai
沒關係C大其實這只是我自己想知道有沒有這部分可以應用而已XD
  1. Sub WIP()
  2.     Dim r%, i%, Arr As Variant
  3.     Dim rng As Range, reg As New RegExp
  4.    
  5.     With reg                                 '  reg :  : RegExp/IRegExp2
  6.         .IgnoreCase = True                   '  IgnoreCase = True : Boolean
  7.         '  S 欄 (Recipe) 篩 出 LS1T | LS1N | TR | BK | VQ 字串,其餘的不要
  8.         .Pattern = "LS1T|LS1N|TR|BK|VQ"      '  Pattern = "LS1T|LS1N|TR|BK|VQ" : String
  9.     End With
  10.    
  11.     With Worksheets("WIP")
  12.         Set rng = .Rows(1)
  13.         Arr = .[A1].CurrentRegion.Value   '  Arr :  : Variant/Variant(1 to 1249, 1 to 27)
  14.         
  15.         For i = 2 To UBound(Arr)      '  UBound(Arr) = 1249 : Long
  16.            
  17.             '  (reg.test(Arr(i, 19)) : Arr(i, 19) = "TR1T0.03" (True) / = "PK1T0" (False)) : Boolean
  18.             If Arr(i, 10) = "G" And Arr(i, 18) = "R" And reg.test(Arr(i, 19)) Then
  19.                 '  N 欄 (Trackin time) 的時間,以當前系統時間 + 4HRS
  20.                 If IsDate(Arr(i, 16)) Then
  21.                     If Arr(i, 16) >= Now And Arr(i, 16) < DateAdd("h", 4, Now) Then    ' 當下時間 +4Hrs
  22.                         If Len(Arr(i, 21)) > 0 And Right(.Cells(i, 9), 1) <> "急貨" Then
  23.                             .Cells(i, 9) = .Cells(i, 9) & "急貨"       '  確認是否為急貨單號
  24.                         End If
  25.                         
  26.                         Set rng = Union(rng, .Rows(i))
  27.                     End If
  28.                     '  N 欄內空白無資料
  29.                 ElseIf Len(Arr(i, 16)) = 0 Then
  30.                     '  如 "U" 欄 (急貨單號),有任何值,在 "I" 欄 (Schedule) 加上 * 號
  31.                     If Len(Arr(i, 21)) > 0 And Right(.Cells(i, 9), 2) <> "急貨" Then
  32.                                   .Cells(i, 9) = .Cells(i, 9) & "急貨"       '  確認是否為急貨單號
  33.                      End If
  34.                       '  Cells(i, 9) = .Cells(i, 9) & "急貨"
  35.                     '  .Cells(i, 9) = Left(.Cells(i, 9), Len(.Cells(i, 9)) - 1) & "急貨"       '  確認是否為急貨單號
  36.                   '  End If
  37.                     
  38.                     Set rng = Union(rng, .Rows(i))
  39.                 End If
  40.             End If
  41.         Next
  42.     End With
  43.    
  44.     With Worksheets("Sheet1")
  45.         .[A1].CurrentRegion.ClearContents      '  清除上一次的畫面
  46.         rng.Copy .Range("A1")
  47.     End With
  48. End Sub
複製代碼
C大我"WIP"的   MA code"O"欄   可以把"TR排機&產出"   的 機台編號"B欄"
"TR排機&產出" B欄下的 號碼  會出現在  WIP"的   MA code"O"欄
可以濾掉嗎~
目前我只學保留的方法XD
先濾掉在做我後面寫的篩"G"跟"R"出來
If Arr(i, 10) = "G" And Arr(i, 18) = "R" And reg.test(Arr(i, 19)) Then

TOP

回復 25# c_c_lai


   

TR排機&產出的"B"欄  裡面有SQH011 . SQH021...............SQ10A1
WIP的"O"欄   裡面也會有SQH011 . SQH021...............SQ10A1   
要把這些濾掉在做我後面寫的
If Arr(i, 10) = "G" And Arr(i, 18) = "R" And reg.test(Arr(i, 19)) Then

TOP

回復 27# c_c_lai


WIP的"O"欄   裡面也會有SQH011 . SQH021...............SQ10A1
如果跟我一樣寫死在裡面的話, 會有這些
SQH011.SQH021.SQH031.SQH041.SQH051.SQH061.SQH071.SQH081.SQH091.SQH101.SQH111.SQH121.SQH131.SQH141.SQH151.SQH161.SQH171.SQH181.SQH191.SQH201.SQH211.SQH221.SQH231.SQH241.SQH0A1.SQ6011.SQ6021.SQ6031.SQ6041.SQ6051.SQ6061.SQN011.SQN021.RQT031.RQT051.SQ8281.SQ8291.SQ8301.SQ8311.SQ8321.SQ8331.SQ8341.SQ8351.SQ8381.SQ8411.SQ8421.SQ8431.SQ8471.SQ8481.SQ8491.SQ8501.SQ8541.SQ8551.SQ8571.SQ10A1

這些數字就是從"TR排機&產出"的B欄取出來的
然後篩到Sheet1的時候要把這些都去除掉
篩的欄位就是"WIP"的O欄

TOP

        靜思自在 : 並非有錢魷是快樂,問心無愧心最安。
返回列表 上一主題