Board logo

標題: 請問如何篩選每分鐘術據 [打印本頁]

作者: xu123    時間: 2012-7-8 10:02     標題: 請問如何篩選每分鐘術據

[attach]11613[/attach]就是我只要下面檔案每分的數據就好
可以幫我嗎
作者: GBKEE    時間: 2012-7-8 17:30

回復 1# xu123
  1. Option Explicit
  2. Sub Ex進階篩選_資料複製在其他地方()
  3.     With Sheets("A12520120706")
  4.        If .FilterMode Then .ShowAllData          '資料處於篩選模式 則顯示全部資料
  5.         .Cells(1, .Columns.Count) = "XXX"        '進階篩選: 計算式 準則欄位 不可與資料庫欄位名稱一樣
  6.         .Cells(2, .Columns.Count) = "=SECOND(時間)=0"
  7.         .Range("L2").CurrentRegion = ""
  8.         .Range("A2:" & .Range("A2").End(xlToRight).End(xlDown).Address).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Cells(1, .Columns.Count).Resize(2), CopyToRange:=.Range("L2"), Unique:=False
  9.                                                'Action:=xlFilterCopy  '資料複製在其他地方
  10.     End With
  11. End Sub
  12. Sub Ex進階篩選_在原範圍顯示()
  13.     With Sheets("A12520120706")
  14.          If .FilterMode Then .ShowAllData
  15.         .Cells(1, .Columns.Count) = "XXX"
  16.         .Cells(2, .Columns.Count) = "=SECOND(時間)=0"
  17.         .Range("A2:" & .Range("A2").End(xlToRight).End(xlDown).Address).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=.Cells(1, .Columns.Count).Resize(2), Unique:=False
  18.                                                     'Action:=xlFilterInPlace   在原範圍顯示
  19.     End With
  20. End Sub
複製代碼

作者: xu123    時間: 2012-7-9 05:53

謝謝GBKEE 大大:P :P :P
作者: c_c_lai    時間: 2012-7-28 12:33

回復 2# GBKEE
在執行 Ex進階篩選_在原範圍顯示() 後,
如何將列數重新依序自動排列, 即 1、2、3、7、15、19
重新編列為 1、2、3、4、5、6。
謝謝您!
作者: Hsieh    時間: 2012-7-28 19:06

回復 4# c_c_lai


    [attach]11903[/attach]
作者: c_c_lai    時間: 2012-7-28 19:07

回復 5# Hsieh
謝謝您的指導!
我是想使用 VBA 語法直接處理,一氣呵成。
說真格的,我不太會操作 Excel 的功能介面,
再次謝謝您能否指導我如何應用 VBA 語法 完成它?
作者: Hsieh    時間: 2012-7-28 19:15

本帖最後由 Hsieh 於 2012-7-28 19:41 編輯

回復 6# c_c_lai
這只是告訴你,只要在編號欄位使用公式=SUBTOTAL(3,$B$2:B2)
來完成編號後
執行篩選動作後(不管是手動或VBA操作)
編號都能自動重排顯示
如果要把編號的公式一併寫入VBA
  1. Sub ex()
  2. With ActiveSheet
  3. If .[A1] <> "" Then  '判斷是否已存在編號欄位
  4. .Columns("A").Insert  '插入A欄
  5. End If
  6. If .FilterMode Then .ShowAllData  '判斷是否篩選狀態
  7. .[A2] = "編號"  '寫入欄名
  8. .[A3].FormulaR1C1 = "=SUBTOTAL(3,R2C[1]:R[-1]C[1])"  '編號公式
  9. .[A3].AutoFill .Range(.[A3], .[B65536].End(xlUp).Offset(, -1))  '向下填滿
  10. .[K2] = "=SECOND(B3)=0"   '篩選準則公式
  11. .Range("A1").CurrentRegion.Offset(1).AdvancedFilter xlFilterInPlace, .[K1:K2]  '原地進階篩選
  12. End With
  13. End Sub
複製代碼

作者: c_c_lai    時間: 2012-7-28 20:27

回復 7# Hsieh
謝謝您!
但是我指的是紅框內的排序:
[attach]11904[/attach]
作者: Hsieh    時間: 2012-7-28 23:18

本帖最後由 Hsieh 於 2012-7-30 08:40 編輯

回復 8# c_c_lai
原地篩選不會改變位置
只是將不符合條件的資料列隱藏
所以,工作表的列標籤無法改變
也就是說篩選並不會讓資料重排
資料重排必須使用排序
[attach]11940[/attach]
作者: c_c_lai    時間: 2012-7-29 09:07

回復 9# Hsieh
瞭解了,謝謝您!
[attach]11921[/attach]




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)