2016-02-07 87 views
1

我正在過濾一個表加載賽馬信息。我已經完成了8個過濾器中的7個,但是我正在爲最後一個過濾器而掙扎。基本上全部我需要的是看比賽時間欄(col B),如果有2次相同的話顯然在比賽中有2個選擇。我只想要一個選擇,所以接下來我想刪除/篩選基於C列的培訓師勝利%。無論哪一個更大的百分比是我需要保留的百分比。如果他們是相同的,也許把msgbox說出來,否則我可能不得不過濾第三個字段。我發現了一段越來越近的代碼。刪除一行,如果重複,然後在另一列上過濾

Sub text()  
Dim j As Integer, k As Integer, r As Range  
j = Range("E2").End(xlDown).Row  
For k = j To 2 Step -1  
    MsgBox k  
    Set r = Range(Cells(k, "E"), Cells(k, "E").End(xlUp))  
    If WorksheetFunction.CountIf(r, Cells(k, "E")) > 1 Then  
     Cells(k, "E").EntireRow. Delete  
    End If  
Next k  
End Sub 
+0

請格式化您的代碼。 – phoenix

回答

1

排序教練贏得比例(降序)的數據,然後在時間上使用Range.RemoveDuplicates method

Sub tract() 
    With Worksheets("Sheet6") '<~~ you should know which worksheet you are on 
     With .Cells(1, 1).CurrentRegion 
      'sort on the trainer win percentage (descending) 
      .Cells.Sort Key1:=.Columns(3), Order1:=xlDescending, _ 
         Orientation:=xlTopToBottom, Header:=xlYes 
      'remove duplicate times - the lower rows will be deleted 
      .RemoveDuplicates Columns:=2, Header:=xlYes 
     End With 
    End With 
End Sub 

刪除重複始終去除下進入;保持入口接近頂部。這就是爲什麼排序培訓師首先贏得百分比很重要。這不包括勝利百分比也是重複的情況。在這種情況下,必須添加另一個排序鍵。如果Z列是決定性因素,並且您希望保留較低的值,那麼它將類似於以下內容。

Sub tract() 
    With Worksheets("Sheet6") '<~~ you should know which worksheet you are on 
     With .Cells(1, 1).CurrentRegion 
      'sort on the trainer win percentage (descending) and columns Z (ascending) 
      .Cells.Sort Key1:=.Columns(3), Order1:=xlDescending, _ 
         Key2:=.Columns(26), Order2:=xlAscending, _ 
         Orientation:=xlTopToBottom, Header:=xlYes 
      'remove duplicate times - the lower rows will be deleted 
      .RemoveDuplicates Columns:=2, Header:=xlYes 
     End With 
    End With 
End Sub 
+0

Jeeped這是完美的工作。希望我一週前問過。乾杯 – newmas

+0

嗨。我剛剛發現,當我在過濾後運行上面的代碼時,它並不總是給出正確的結果。它會查看「隱藏的」過濾項目並刪除較低的培訓師比例。是否有一種方法只對可見的記錄執行代碼,而不是與隱藏的過濾記錄進行比較? – newmas

+0

[Range.RemoveDuplicates方法](https://msdn.microsoft.com/en-us/library/office/ff193823.aspx)不限於可見單元格,但還有其他方法只能處理已過濾的集合。建議你關閉這個問題,並開始另一個恐嚇這成爲一個[俄羅斯娃娃問題](http://meta.stackexchange.com/questions/188625/etiquette-for-russian-doll-questions)。 – Jeeped

相關問題