EXCEL在自動篩選後如何自動抓範圍做小計?



贊助商連結


頁 : [1] 2

TPBUNNY
2002-03-29, 09:08 AM
在http://qa.usernet.com.tw/total_view.asp?CurNumber=131248&type=Excel上己經有同學問到:「自動篩選資料後的抓取問題」,最後的回應是:感謝 夏南生 & kau寄來的範本實例, 經過二方巨集資料之彙整已能由輸入條件後自動產生所需之資料與報表, 再次感謝其大力協助。

我研讀了各前輩的文章,可是因為理解力不足也沒有範例可啟發,因此還是無法弄懂,共好再貼上來求救了!

我問題是:用日期為條件做自動篩選後如何對篩選出來的金額欄做小計?我應該可以用inputbox的方式來下日期條件,因此每次得到的篩選範圍都不同,要如何在巨集中判斷金額小計的範圍,進而將小計的值顯現在F2的儲存格呢?

以下是我所錄的巨集,有問題的是"=SUBTOTAL(9,R[-10]C:R[-1]C)"的範圍界定!


Sub Macro1()
'
' Macro1 巨集表
' tpbunny 在 2002/3/26 錄製的巨集
'

Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=">=1991/1/17", Operator:=xlAnd _
, Criteria2:="<=1991/2/6"

Range("F14").Select
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[-10]C:R[-1]C)"
Range("F15").Select
End Sub

贊助商連結


沙拉油
2002-03-29, 12:48 PM
篩選前要小計的範圍是不是 F4:F13
上面的巨集是不是沒問題?是不是你將Range("F14").Select改成Range("F2").Select 才錯誤的?

如果以上的疑問都正確,那你改成這樣試試看
Range("F2").Select
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[+2]C:R[+11]C)"

TPBUNNY
2002-03-29, 03:30 PM
謝謝沙拉油,我所附的巨集是可以用的,不過那是用人工去選擇小計範圍所得程式碼,我想請教的問題是:隨著篩選日期的不同(篩選日期由表單的TEXTBOX輸入),我所篩選出來的筆數也有所不同,要如何設程式才能在F2儲存格中顯示出篩選出來資料的小計,不管是2筆資料或是10筆資料。

K10~K109是日期欄,F10~F109是金額欄,用日期做篩選,小計金額欄的數字。
附上檔案請您指導,謝謝!***檔案現在附不上去,待會再補傳!

TPBUNNY
2002-03-29, 04:33 PM
沙拉油您好:現在附上檔案

沙拉油
2002-03-29, 04:35 PM
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[+2]C:R[+11]C)"
你把上面那一段改成
ActiveCell.Formula = "=SUBTOTAL(9,F10:F109)"
應該就可以了

TPBUNNY
2002-03-29, 08:52 PM
哇!原來解答是如此的簡潔,我真是想的太複雜了,考慮visiabel、考慮x1up等方向,真像是一個北七,謝謝沙拉油的幫忙!

TPBUNNY
2002-03-29, 09:03 PM
對不起:
追加請教一下,為何用SUBTOTAL可以在A1中顯示出篩選出來的金額小計,用COUNT卻會在A2中統計出全部的筆數而不是篩選出來的筆數呢?

[a1].Activate
ActiveCell.Formula = "=SUBTOTAL(9,F10:F109)"
[a2].Activate
ActiveCell.Formula = "=count(F10:F109)"

沙拉油
2002-03-30, 04:15 AM
你可以用 =subtotal(3,F10:F109) 來算個數

TPBUNNY
2002-03-30, 06:59 AM
是的,subtotal有11個功能參數可用,我竟然沒有仔細去看,真是太不應該了。

我現在打開excel的說明,才發現subtotal函數中有如下說明:「SUBTOTAL 會忽略所有篩選過後的隱藏列。如果清單經過篩選,而您只想小計可見儲存格的內容時,這是很重要的。」

這就是我這幾天一直想要找的答案,原來就在這裡,其實這個subtotal的說明檔我已看過了,就是沒仔細看,才會鬧出此種見笑的問題,真是感謝沙拉油不厭其煩的一再教導!

沙拉油
2002-03-30, 07:20 PM
你謙虛了~~每個人都有失察的時候也都是在錯誤中成長
希望哪天小弟說錯了什麼的時候您也能給予指導