2013-08-21 75 views
0

我有一個excel文件,其中有列B1到B500(可能會有所不同),並填入數字。例如:使用VB.net對excel列的排序值進行最大化排序

![sample data](http://i.stack.imgur.com/zSkLt.jpg) 

我需要的輸出是這樣的:

![sample output](http://i.stack.imgur.com/nTqEK.jpg) 

我有這麼多的代碼至今:

Sub Max() 
    Dim i As Long, j As Long 
    Dim cl As Excel.Range 

    i = 1 
    j = 1 
    For i = sheet.UsedRange.Rows.Count To 1 Step -1 
     cl = sheet.Cells(i, 2) '## Examine the cell in Column B 
     If xl.WorksheetFunction.CountIf(sheet.Range("B:B"), cl.Value) > 1 Then 
      cl.Value = sheet.Cells(j, 3).value 'copy to Column C 
     End If 
     j = j + 1 
    Next i 
End Sub 

這段代碼所做的是找到列重複B並從列中刪除其他條目。沒有什麼會寫入列C中。我希望列B在最後未被編輯。也無法弄清楚如何在這裏實現排序。

請幫忙。

+0

可能使用Record Macro檢查手動過程(簡單)中的代碼給你一些指針? – pnuts

+0

所以你想獲得列B中所有唯一值的列表(不重複),然後將它們全部放入C列,但按降序排列? – rwisch45

+0

@ rwisch45:不是唯一的值。我希望C列在B列中被重複填充(以降序排列)。重複次數將在D列中。 – slyclam

回答

0

好吧,如果你想太多,你可以使用公式:

Static Sort Using Excel Formulas - lmiguelmh

使用數組公式(按Ctrl + Shift +做編輯單元格時,輸入),我的Excel是一個西班牙語這是非常重要的版本,所以你只需要改變: - SI由IF - CONTAR.SI由COUNT.IF

我想出了這個解決方案思考bubble sort algorithm。我希望這會對你有用。

相關問題