所以我有一个“标记”列,我使用=IF(INDIRECT("RC",0)="",TRUE,FALSE)
条件格式化,如果单元格为空,则更改字体颜色以使字体颜色为不同颜色(蓝色),因为我按值手动排序,空白单元格最终落在底部。当我按字体颜色手动排序时,一切正常。
手动排序:
手动排序结果
这个想法是让它成为一个宏,所以我记录了我做手动排序并获得以下内容:
Range("A1:F9").Select
ActiveWorkbook.Worksheets("Sheet1").SORT.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").SORT.SortFields.Add(Range( _
"E2:E9"), xlSortOnFontColor, xlDescending, , xlSortNormal).SortOnValue.Color = _
RGB(0, 0, 0)
ActiveWorkbook.Worksheets("Sheet1").SORT.SortFields.Add Key:= _
Range("D2:D9"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").SORT
.SetRange Range("A1:F9")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
但是,当我运行录制的代码时,我得到的与我想要的完全相反,底部带有空白标记的单元格:
我已尝试将xlSortOnFontColor
的{{1}}更改为xlDescending
,但仍有相同的非理想结果。
问题: 鉴于我为一个有效的手动过程录制了一个宏,为什么记录的代码不起作用,代码应该是什么?
答案 0 :(得分:3)
您尚未选择要排序的字体颜色:
.SortOnValue.Color = _
RGB(0, 0, 0)
这也会在您的排序屏幕截图中显示。再次录制宏并专门选择字体颜色以将其置于顶部。再次录制更容易,否则您需要找到所选颜色的RGB代码。
录制过程仍远未完美,但它仍然是一个非常有用的工具。