c# - 使用 Worksheet.Range.Autofilter(Field,Criteria,Operator) 按特定颜色索引/RGB 过滤范围

标签 c# vb.net excel colors filtering

我正在使用 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/

相关文章:

c# - 如何在 Entity Framework 中指定索引提示?

vb.net - 调用 Rnd() 生成相同的数字

c# - 如何将数组转换或复制到链表?

c# - ASP.Net 文本框不应建议旧值

excel - 一次更改工作表中的多个命名单元格和范围

java - 通过从模板编程创建 Excel 报告

c# - 类型或模式的动态列表来解决变化类型问题?

c# - 访问 S3FileInfo 属性时发生 AmazonS3Exception

c# - 将数据从 AuthorizeCore 传递到 HandleUnauthorizedRequest,然后传递到 ASP.NET MVC4 中的 Action

vba - 从 MS Access VBA 调用 MS Excel 函数