返回列表 上一主題 發帖

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

回復 7# 198188
你應該注意一下G版的縮圖 ,
他這樣做已經將條件區和篩選結果分開了,
你的sheet2一開始是完全空白

TOP

回復 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

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

TOP

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

TOP

回復 17# 198188

="=KEN"

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

TOP

回復 19# 198188
可以自己改阿 , 我是以為你要一直新增才這樣寫的..
    'nextRow = Sheets("Result").UsedRange.Rows.Count + 1
    nextRow = 2
    Sheets("Result").UsedRange.Offset(1).Clear
    ---略---
    'endRow = Sheets("Result").UsedRange.Rows.Count
    endRow = Sheets("Result").Range("A" & Sheets("Result").Rows.Count).End(xlUp)

TOP

        靜思自在 : 要比誰更受誰.不要比誰更怕誰。
返回列表 上一主題