Excel C# AutoFilter For Each 没有正确循环

问题描述 投票:0回答:0

我一直在努力将我拥有的 excel 宏转换为 C# winform 应用程序,以便其他人更容易使用。但是,我陷入了工作表所需的 foreach 语句。基本上,我们得到了我们拥有的所有客户数据的工作表,Excel 宏通过识别的唯一客户(AA 列)过滤数据,复制可见单元格并将其粘贴到新工作表中。我有自动过滤器可以到达 AA 中的第一个单元格,但它不会移动到下一个单元格,它会不断将第一个客户复制并粘贴到无限数量的新工作表上。我不太确定如何让自动筛选标准转移到 AA3 而不是停留在 AA2 上。

            fullRow3 = newerWSCopy.Range["AA:AA"].Rows.Count;
            lastRow4 = newerWSCopy.Cells[fullRow3, "AA"].End(Excel.XlDirection.xlUp).Row;
            Excel.Range machine2 = newerWSCopy.Range["AA2:AA" + lastRow4];
            Excel.Range visibleCells = newerWSCopy.Range["A1:I" + lastRow3].SpecialCells(Excel.XlCellType.xlCellTypeVisible, Type.Missing);
            

            foreach (var facility in newerWSCopy.Range["AA2:AA" + lastRow4])
            {
                
                    newerWSCopy.Range["A1:I" + lastRow3].AutoFilter(3,machine2.Value, XlAutoFilterOperator.xlFilterValues, Type.Missing, true);
                    newerWSCopy.AutoFilter.Range.Copy();
                    Excel.Worksheet newWS = xlApp2.Worksheets.Add(After: xlWorkbook2.Sheets[xlWorkbook2.Sheets.Count]);
                    newWS.AutoFilterMode = false;
                    newWS.Paste();

            }

我试过更改自动筛选条件,但无法得到任何有效的东西。

c# foreach excel-interop
© www.soinside.com 2019 - 2024. All rights reserved.