返回列表 上一主題 發帖

[發問] 請教改良速度方法

回復 10# 198188
參考看看 , 利用進階篩選做的

test.zip (19.54 KB)
  1. Sub myFilter()
  2.     Dim rngSrc As Range, rngCopyField As Range, rngFilter As Range
  3.     Dim nextRow As Long, endRow As Long
  4.    
  5.     Set rngSrc = Sheets("資料庫").[A1:G7]
  6.     Set rngCopyField = Sheets("條件區").[B8:H8]
  7.     Set rngFilter = Sheets("條件區").[B1].Resize(Sheets("條件區").[B1].CurrentRegion.Rows.Count, 8)
  8.    
  9.     nextRow = Sheets("整理區").UsedRange.Rows.Count + 1
  10.                
  11.     rngSrc.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
  12.     rngFilter, CopyToRange:=Sheets("整理區").Range("A" & nextRow)
  13.         
  14.     endRow = Sheets("整理區").UsedRange.Rows.Count
  15.    
  16.     For i = 1 To rngCopyField.Count
  17.         If rngCopyField(i) = "N" Then
  18.             Sheets("整理區").Range(nextRow & ":" & endRow).Columns(i).Clear
  19.         End If
  20.     Next
  21.    
  22.     Sheets("整理區").Range("A" & nextRow).Resize(1, 7).Delete Shift:=xlUp   'delete header
  23.    
  24.     Set rngSrc = Nothing
  25.     Set rngCopyField = Nothing
  26.     Set rngFilter = Nothing
  27. End Sub
複製代碼

TOP

回復 11# stillfish00

請問如果尋找條件是空格,應該如何表示?

TOP

回復 12# 198188
條件設定都跟進階篩選準則一樣
你可以參考  http://office.microsoft.com/zh-tw/excel-help/HP010073942.aspx
如輸入
=" "        篩選該欄位為單個空白字元
="* *"    篩選該欄位包含空白字元
=" *"      篩選該欄位以空白字元開頭

TOP

本帖最後由 198188 於 2012-12-3 11:58 編輯

回復 13# stillfish00


    姓名         性別         電話         國藉         車牌         年齡         職業
John         男        11111111        China        有                Clerk
Peter        男        22222222        Germany        有        30        A/C
David        男        33333333        USA        無        15        ADMIN
Tina        女        44444444        China        有        25        Clerk
June        女        55555555        ITALY        無        35        Clerk


進階篩選準則:        姓名         性別         電話         國藉         車牌         年齡         職業
                                       *n*                                                                       =" "
複製欄位:                             Y        Y        Y        N        Y        N        Y

沒有反應,沒有資料出來

TOP

回復 14# 198188
找空白儲存格 , 輸入
=   或   ="="

TOP

回復 15# stillfish00


    另一個問題,請問如果要尋找絕對值呢,應該如何寫?
例如:
KEN
KENNY
KEN CHEN
CHAN KEN

如果只要顯示ken的資料,那麼應該怎樣寫?

TOP

回復 15# stillfish00


    test1.rar (878.31 KB)
好像有些問題,無法做到

TOP

回復 17# 198188

="=KEN"

test1.zip (723.23 KB)
1.  你欄數共有38欄 resize也要跟著改
2.  Result工作表要清空值的時候 , 要用整列刪除 ,
     否則判斷Sheets("Result").UsedRange.Rows.Count列數時
     還會是清空前的列數 , 這點我也不知道何解...

TOP

本帖最後由 198188 於 2012-12-3 15:29 編輯

回復 18# stillfish00

請問為什麼按一次後,它自動將最後那row當成下次的第一個?
因為我按一次後,把資料刪除後就在上一次執行的最後一列+1開始,可以讓它不會自動記憶,每按一次就先刪除以前的資料,然後都從A2開始。
另外我附件內另一個程式執行時很慢,有加快的方法嗎

TOP

回復 10# 198188


    左邊那張縮圖有說明...

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

        靜思自在 : 並非有錢魷是快樂,問心無愧心最安。
返回列表 上一主題