【发布时间】:2015-07-15 19:49:27
【问题描述】:
我正在使用 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)
【问题讨论】:
-
如果它在 VB 中工作......你能不能只将 using Microsoft.VisualBasic` 程序集添加到你的标题中以访问 vb.net 功能
-
有效的 VB.Net 语句是什么样的?
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
@MethodMan 作为最终替代方案,这是一个好主意,但是我想找到一个 C# 解决方案,因为它是最首选的。感谢您的建议。我们将看看是否有其他人能想到解决方案。
-
@Blackwood 我将其添加到问题中。
标签: c# vb.net excel colors filtering