使用C#在Excel中对单元格颜色进行sorting
我的代码与错误消息崩溃 – “sorting引用无效。请确保它在您要sorting的数据中,并且第一个sorting方框不是相同或空白。
我正在尝试对单元格颜色进行sorting。 这是我的代码:
_wks.Sort.SortFields.Clear(); _wks.Sort.SortFields.Add( DupesColumn, XlSortOn.xlSortOnCellColor, XlSortOrder.xlAscending); _wks.Sort.SortFields[1].SortOnValue.Color = XlRgbColor.rgbRoyalBlue; _wks.Sort.SetRange(DupesColumn.CurrentRegion); _wks.Sort.Header = XlYesNoGuess.xlYes; _wks.Sort.MatchCase = false; _wks.Sort.Orientation = XlSortOrientation.xlSortRows; _wks.Sort.SortMethod = XlSortMethod.xlPinYin; _wks.Sort.Apply();
DupesColumn是一个范围。 我使用VS 2013.我试图定义范围为dynamic,没有工作。
有任何想法吗?
我认为你的代码正在打破:
_wks.Sort.SortFields[1].SortOnValue.Color = XlRgbColor.rgbRoyalBlue;
这将是因为对SortFields [1]的引用无效,因为它是基于零的。 因此,如果你已经清除了SortFields,然后只添加一个,那么它的引用将是0而不是1.因此,以下应该工作:
_wks.Sort.SortFields[0].SortOnValue.Color = XlRgbColor.rgbRoyalBlue;
这是因为你设置的Orientation属性的价值。
这条线
_wks.Sort.Orientation = XlSortOrientation.xlSortRows;
应该
_wks.Sort.Orientation = XlSortOrientation.xlSortColumns;
进一步阅读:
1) F#Excel Range.Sort失败或重新排列列