2006年10月18日 星期三

Excel巨集(VBA):設定多重篩選並將結果加總

需求

  • H欄不能為0
  • 設定E、H、I欄的範圍
  • 計算符合篩選的資料有幾筆
  • 將篩選後的J欄加總

Code

  • count的結果在A欄最下面(比方第一列是名稱,資料有500筆,count的結果會在A502)
  • sum在J欄最下面

Sub Macro1() ' ' Macro1 Macro ' written by chlo, 2006/10/17 ' ' count rows Range("A1").Select Selection.CurrentRegion.Select row_count = Selection.Rows.Count - 1 ' count result by subtotal() Range("A" & (row_count + 2)).Select ' R3C[-3] means row = 3, column = current selected column - 3 ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R2C[0]:R[-1]C[0])" ' sum result by subtotal() Range("J" & (row_count + 2)).Select ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R2C[0]:R[-1]C[0])" ' filter Range("A1").Select Selection.AutoFilter Field:=8, Criteria1:="<>0" Selection.AutoFilter Field:=5, Criteria1:=">=0.1", Criteria2:="<=1000" Selection.AutoFilter Field:=8, Criteria1:=">=100", Criteria2:="<800" Selection.AutoFilter Field:=9, Criteria1:=">=300", Criteria2:="<1000" End Sub

用法

  1. 工具->巨集->Visual Basic編輯器
  2. 用右鍵點選Visual Basic編輯器左側的檔名->插入->模組
  3. 把上面的code貼進去,存檔(不存也可以用啦)

之後執行這個巨集就OK了,或在Visual Basic編輯器裡按F5,
若要對其它excel檔執行,Visual Basic編輯器不要關,打開其它檔案後再切回編輯器按F5

參考文件

沒有留言:

張貼留言