返回列表 上一主題 發帖

[發問] 多條件篩選&ListBox

回復 21# starbox520
妳的提問業已超出我個人的知識領域了。
這得請教其他大大了。

TOP

回復 19# c_c_lai


C大請問一下

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

是調整屬性嗎?

TOP

回復 19# c_c_lai


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

TOP

回復 14# starbox520

為了調整對格,請將下列程式部分自行修正:
  1. Private Sub lstSelector_設定()
  2.     Dim i As Integer, Arr()

  3.     With lstSelector             '  ** frmSelector 中的 第一個 ListBox 控制項 (lstSelector)
  4.         .Clear
  5.         i = 0
  6.         
  7.         If Not IsEmpty(Sheets("TR排機&產出").Sh_Ar) Then
  8.             Arr = Sheets("TR排機&產出").Sh_Ar
  9.             If Not IsEmpty(Arr) Then
  10.                 On Error Resume Next
  11.                 i = UBound(Arr, 2)
  12.                 If i > 0 Then
  13.                     .List = Arr
  14.                 Else
  15.                     .AddItem
  16.                     For i = 0 To UBound(Arr)
  17.                         .List(0, i) = Arr(i + 1)
  18.                     Next i
  19.                 End If
  20.             End If
  21.         End If
  22.     End With
  23.    
  24.     With ListBox1                '  ** frmSelector 中的 第二個 ListBox 控制項 (ListBox1)
  25.         .ColumnCount = 9
  26.         .ColumnWidths = "75,68,97,80,43,52,75,60,65"
  27.    End With
  28. End Sub
複製代碼

TOP

本帖最後由 c_c_lai 於 2016-12-27 17:57 編輯

回復 16# starbox520
附上修正後織程式。
整個再跑一次看看。
tx00001223U.rar (775.78 KB)

TOP

回復 16# starbox520
妳這裡有語病,應兩個都改成:
  1.    If Len(Arr(i, 21)) > 0 And Right(.Cells(i, 9), 2) <> "急貨" Then
  2.        .Cells(i, 9) = .Cells(i, 9) & "急貨"       '  確認是否為急貨單號
  3.    End If
複製代碼
因為末二字不為 "急貨",才加上 "急貨" 二字。

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

回復 14# starbox520
  1.    If Len(Arr(i, 21)) > 0 And Right(.Cells(i, 9), 1) <> "*" Then
  2.        .Cells(i, 9) = .Cells(i, 9) & "*"       '  確認是否為急貨單號
  3.    End If
複製代碼
如果不要 * (即同步去除原附加的 * 號), 然後再加上 "急貨" 兩字,
   則可改成:
  1.    If Len(Arr(i, 21)) > 0 And Right(.Cells(i, 9), 1) <> "*" Then
  2.        .Cells(i, 9) = Left(.Cells(i, 9), Len(.Cells(i, 9)) - 1) & "急貨"       '  確認是否為急貨單號
  3.    End If
複製代碼
妳的意思是如此嗎?

TOP

回復 13# c_c_lai

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

TOP

回復 12# starbox520
是從右邊起往前抓三位數字來比較 (Right(arSh2(ct2, 2), 3) = Right(Adt_Rng.Value, 3)):
例如":  "FHC BGA" 與 "VFBGA" 均視為 "BGA",
無關有否空格, 只要右三碼是一樣,條件即為符合。

TOP

        靜思自在 : 道德是提昇自我的明燈,不該是呵斥別人的鞭子。
返回列表 上一主題