我一直在努力将我拥有的 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();
}
我试过更改自动筛选条件,但无法得到任何有效的东西。