我想允许从特定行(6)中过滤一列(A或1)中的值。我可以为行中的所有列提供过滤器,如下所示:
Range sixthRow = (Range)_xlSheet.Rows[6];
sixthRow.AutoFilter(1,
Type.Missing,
XlAutoFilterOperator.xlAnd,
Type.Missing,
true);
...或者像这样:
Range column1Row6 = _xlSheet.Range[_xlSheet.Cells[6, 1], _xlSheet.Cells[6, 1]];
column1Row6.AutoFilter(1,
Type.Missing,
XlAutoFilterOperator.xlAnd,
Type.Missing,
true);
......所以它看起来像这样:
...但我只希望第6列的第一列过滤(“第6行”部分工作正常),而不是第2,3,4和5列(可能还有更多)
如何仅在第一列(A或1)上使用过滤器而不是整行?
答案 0 :(得分:2)
如果我理解你的问题,我会在普通的Excel中使用黑客来完成对单个列的过滤。我曾经突出显示整个列并点击过滤器按钮,当你有数万行数据时,真的很痛苦。
正如您可能知道的那样,当您只有一个单元格突出显示时,它会自动过滤整行,就像说任何一个单元格意味着“没有特别是”一样突出显示。
很偶然,我发现如果你突出显示超出一个单元格的任何范围,它会试图找出你的意思。在这种情况下,如果突出显示标题行(A5)和紧接其下方的一个单元格,然后点击过滤器,它将与突出显示整个列具有相同的效果。
因此,在C#互操作术语中,这将等同于该操作:
_xlSheet.Range[_xlSheet.Cells[5, 1], _xlSheet.Cells[6, 1]].AutoFilter();