在Excel中使用c#对单元格颜色进行排序
本文关键字:颜色 单元格 排序 Excel | 更新日期: 2023-09-27 18:03:13
我的代码崩溃了,错误消息- "排序引用无效。确保它位于要排序的数据中,并且第一个sort By框不是相同的或空白的。"
我正在尝试对单元格颜色进行排序。这是我的代码:
_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。我尝试将范围定义为动态的,没有工作。
任何想法?
我觉得你的代码出问题了:
_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范围。排序失败或重新排列列