2016-12-01 623 views
0

我錄製了一個宏來過濾一列數字和文本。這些數字被格式化爲綠色 - 黃色 - 紅色色標,1表示紅色。唯一的文本是「貴賓」,其中有黑色的單元格。從記錄宏中排序列代碼無法正常工作

我記錄的宏只是使用按顏色排序 - 黑色將頂部的「VIP」置於1後面,等等,這個過程使用手動過濾器,但是當我使用宏時,首先放1,然後「VIP」然後2等等。這隻發生在一張紙上,但其他紙張具有相同的代碼,但具有不同的紙張名稱,並且它們工作正常。

我不知道這是什麼原因,我錄製的宏代碼如下:

ActiveWorkbook.Worksheets("Characterisation").AutoFilter.Sort.SortFields.Clear 
ActiveWorkbook.Worksheets("Characterisation").AutoFilter.Sort.SortFields.Add(_ 
    Range("D14"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue. _ 
    Color = RGB(0, 0, 0) 
With ActiveWorkbook.Worksheets("Characterisation").AutoFilter.Sort 
    .Header = xlYes 
    .MatchCase = False 
    .Orientation = xlTopToBottom 
    .SortMethod = xlPinYin 
    .Apply 
End With 

任何幫助,將不勝感激!

回答

0

只是隨機拍攝。你可以這樣做:

Activesheet.AutoFilter.Sort.SortFields.Clear 
Activesheet.AutoFilter.Sort.SortFields.Add(_ 
    Range("D14"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue. _ 
    Color = RGB(0, 0, 0) 
With Activesheet.AutoFilter.Sort 
    .Header = xlYes 
    .MatchCase = False 
    .Orientation = xlTopToBottom 
    .SortMethod = xlPinYin 
    .Apply 
End With 

將代碼保存在模塊中。如果它不起作用,一些解釋的截圖將是一個好主意。 我所做的是總是引用activesheet。

+0

我試過這個,但它不工作,我會上傳屏幕截圖,但文件是保密的,除非你想要更多的代碼我有它? – Tom

+0

我剛剛嘗試過使用另一個過濾器,但它仍然不起作用,我認爲它實際上是頂部單元格或行阻止它被排序的問題。 – Tom

+0

那麼,@Tom,我的代碼只會將當前表單更改爲活動表單。它應該在你的其他代碼工作的所有工作表上工作。關於機密數據 - 不要在任何地方上傳。 – Vityata