返回列表 上一主題 發帖

[發問] 根據多條件篩選清單

[發問] 根據多條件篩選清單



1. 根據 Shop 和 Code 篩選有關 Date 的所有清單。
2. 查出了 Date 的所有清單後,選擇其中一個日期而找出 Amount 金額。
謝謝!


book1.rar (16.39 KB)

回復 1# maiko

剛不久前,我作了一個類似的,修改了一下,也不知是不是應你的要求!
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Address = [k3].Address Then
  3.         Range("B2:G" & Cells(Rows.Count, 2).End(xlUp).Row).AutoFilter
  4.         ActiveWorkbook.Worksheets("工作表1").AutoFilter.Sort.SortFields.Clear
  5.         ActiveWorkbook.Worksheets("工作表1").AutoFilter.Sort.SortFields.Add Key:=Range( _
  6.             "B2:B" & Cells(Rows.Count, 2).End(xlUp).Row), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
  7.             xlSortNormal
  8.         With ActiveWorkbook.Worksheets("工作表1").AutoFilter.Sort
  9.             .Header = xlYes
  10.             .MatchCase = False
  11.             .Orientation = xlTopToBottom
  12.             .SortMethod = xlPinYin
  13.             .Apply
  14.         End With
  15.         Range("B2:G" & Cells(Rows.Count, 2).End(xlUp).Row).AutoFilter
  16.         
  17.     shop = [k3]
  18.     For Each Rng In Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row)
  19.         If Rng = shop Then
  20.             K = K + 1
  21.             If K = 1 Then
  22.                 Set Rn = Rng.Offset(0, 1)
  23.             Else
  24.                 Set Rn = Union(Rn, Rng.Offset(0, 1))
  25.             End If
  26.         End If
  27.     Next
  28.     aa = Rn.Address
  29.     If aa = "" Then
  30.         Exit Sub
  31.     Else
  32.         With [L3].Validation
  33.             .Delete
  34.             .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=" & aa
  35.             .IgnoreBlank = True
  36.             .InCellDropdown = True
  37.             .InputTitle = ""
  38.             .ErrorTitle = ""
  39.             .InputMessage = ""
  40.             .ErrorMessage = ""
  41.             .IMEMode = xlIMEModeNoControl
  42.             .ShowInput = True
  43.             .ShowError = False
  44.         End With
  45.     End If
  46.     [L3] = "請選擇日期"
  47. End If
  48. If Target.Address = [L3].Address Then
  49.     For Each Rang In Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row)
  50.         If Rang = [k3] And Rang.Offset(0, 1) = [L3] Then
  51.             [K5] = Rang.Offset(0, 2)
  52.             [L5] = Rang.Offset(0, 5)
  53.             End
  54.         End If
  55.     Next
  56. End If
  57. End Sub
複製代碼

TOP

回復 1# maiko

順便提一下,資料驗證清單必須是連續的儲存格,所以我程序中有做排序的動作

TOP

回復  maiko

剛不久前,我作了一個類似的,修改了一下,也不知是不是應你的要求!
lpk187 發表於 2015-4-17 18:16



    我放了這段編碼,可是沒反應,不知道是哪裡有問題?

TOP

回復 4# maiko


   這是工作表的事件程序,所以你必須貼在工作表1的程序中

TOP

本帖最後由 lpk187 於 2015-4-17 19:51 編輯

回復 4# maiko
在工作表1的標籤上按右鍵選擇檢視程式碼

然後在編輯區貼上代碼就行了

1。貼上後,只要你在"K3"儲存格鍵入你的shop,日期欄的清單就會改變,
2。改變日期清單後,只要你改變日期清單的資料,就會得到你要的答案

TOP

回復 4# maiko


    aaa.rar (21.21 KB)

TOP

回復  maiko
lpk187 發表於 2015-4-17 19:53



    不好意思,我的原意是先有 Shop 和 Code 這兩個條件,然後篩選出 Date,有了 Date 之後才有 Amount,謝謝!

TOP

回復 8# maiko


    不好意思,誤會你的意思,不過你仍可以修改其中的判斷就可以達到你要的東西了!

TOP

回復  maiko


    不好意思,誤會你的意思,不過你仍可以修改其中的判斷就可以達到你要的東西了!
lpk187 發表於 2015-4-18 08:43



    好吧,試試看,有不明白再問你,好嗎?

TOP

        靜思自在 : 閒人無樂趣,忙人無是非。
返回列表 上一主題