我正在使用 C# 进行一些自动 Excel 操作。我一直很难弄清楚如何根据特定颜色自动过滤。
关于这种类型的操作的文档很少,但是我找到了一些 VB.net 和 VBA 代码。我似乎无法将代码转换为 C#,因为“RGB”不像在 VB.net 和 VBA 中那样可用(请参阅下面的 VB.net 代码)。
由于这个问题还没有答案,我想指定需要查看的代码。在 Autofilter(Field,Criteria,Operator) 中,我需要知道 C# Microsoft.Office.Interop.Excel 标准,以便我选择要过滤的颜色。
这是我的代码:
Excel.Worksheet xs1:
Excel.Range xRange1;
Excel.Range xRange2;
Excel.Range lastrow;
Excel.Range lastcol;
lastrow = xs1.Rows.End[Excel.XlDirection.xlDown];
lastcol = xs1.Columns.End[Excel.XlDirection.xlToRight];
xRange1 = xs1.Cells[2, 14];
xRange2 = xs1.Cells[lastrow.Row, 14];
下面选择整个工作表并添加一个 autofilter(),将其设置为过滤颜色。这工作正常,但是我如何选择我想要它过滤的颜色?
xs1.Range["A1", xs1.Cells[lastrow.Row, lastcol.Column]].
AutoFilter(14,Excel.XlColorIndex.xlColorIndexAutomatic,
Excel.XlAutoFilterOperator.xlFilterCellColor);
下面是自动过滤器代码在 VB.net 中的示例。它看起来也与 Excel 宏中的非常相似。
xs1.Range("A1", xs1.Cells(lastrow.Row, lastcol.Column)).
AutoFilter(Field:=14,Criteria1:=RGB(0,202,255),
Operator:=Excel.XlAutoFilterOperator.xlFilterCellColors)
最佳答案
这就是为那些需要自己弄清楚的可怜灵魂选择颜色索引的方法。我在互联网上找不到这个。
xs1.Range["A1", xs1.Cells[lastrow.Row, lastcol.Column]].
AutoFilter(14, xlBook.Colors[33], Excel.XlAutoFilterOperator.xlFilterCellColor);
重要的部分是“xlBook.Colors[33]”。 xlBook 是工作簿。 33是颜色索引。
关于c# - 使用 Worksheet.Range.Autofilter(Field,Criteria,Operator) 按特定颜色索引/RGB 过滤范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30063796/