close
LV超3A名牌購物網

EXCEL VBA以〔公式〕檢測各欄符合條件,利用〔篩選〕匯出資料
                         <.准提部林.>
---------------------------------
主要需求:
 絛件1:J欄含有 "T"
     公式:=COUNTIF(J47,"*T*")
 
 絛件2:J欄含有 "OK" (且) P欄〔日期〕為前七天以內
     公式:=COUNTIF(J47,"*OK*")*IF(N(P47)=0,0,P47>=TODAY()-7)
 
 任一條件成立,則納入篩選中,完整公式:
 =COUNTIF(J47,"*T*")+COUNTIF(J47,"*OK*")*IF(N(P47)=0,0,P47>=TODAY()-7)
 
解決方案:
 增建X欄置入〔公式〕,並以此欄為篩選準則〔>0〕
 
程式碼:僅列主程式,其餘及註解請參閱範例檔
 Sub 篩選_執行()
 Dim i&, xName, xFile$
 xName = Array("華川", "宏準")
 Call 篩選_展開全表
 With TmpSht
    If .FilterMode Then .ShowAllData
    .Rows("15:65536").Clear
 End With
 If DataCunt = 0 Then Exit Sub
 Application.ScreenUpdating = False
 FxClmn.Formula = _
  "=COUNTIF(J47,""*T*"")+COUNTIF(J47,""*OK*"")*IF(N(P47)=0,0,P47>=TODAY()-7)"
 uArea.AutoFilter Field:=24, Criteria1:=">0"
 If Application.Subtotal(3, FxClmn) = 0 Then GoTo 101
 Application.DisplayAlerts = False
 For i = 0 To UBound(xName)
   uArea.AutoFilter Field:=4, Criteria1:=xName(i)
   If Application.Subtotal(3, FxClmn) > 0 Then
    uBase.Copy TmpSht.[A15]
    TmpSht.Copy
    xFile = MyBook.Path & "\" & xName(i) & Format(Date, "yyyymmdd") & ".xls"
    With ActiveWorkbook
       .SaveAs xFile, CreateBackup:=False
       .Close
    End With
    TmpSht.Rows("15:65536").Clear
   End If
 Next i
 uArea.AutoFilter Field:=4
 uBase.Copy TmpSht.[A15]
 101: DataSht.ShowAllData
    FxClmn.ClearContents
 End Sub 
---------------------------------
<範例檔1>:

 
<範例檔2>進階以〔廠商〕分別篩選匯出:

---------------------------------

LV超3A名牌購物網
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 方志遠 的頭像
    方志遠

    Lv,Gucci,Lv包包,Lv錢夾,Lv手錶,Lv目錄,Gucci公仔包,Lv購物包,Lv水桶包,Lv批發,愛美仕名牌購物

    方志遠 發表在 痞客邦 留言(0) 人氣()