7
我有一个带有许多许多工作表的excel工作簿。我想删除除三个之外的所有表单。以编程方式删除excel工作表
具体来说,我想知道是否有一种方法可以使用工作表名称而不是序号(工作表编号)来删除工作表。
我使用excel interop和C#来使用Excel。
Microsoft.Office.Interop.Excel.Application xlApp = null;
Excel.Workbook xlWorkbook = null;
Excel.Sheets xlSheets = null;
Excel.Worksheet xlNewSheet = null;
这是不对的,我相信。你不应该在你的循环中向下,因为你从工作表集合中删除? 'for(int i = WorkSheets.Count; i> 1; i - )' – 2013-05-02 01:49:30
没有'C#'expert但是'xlApp.DisplayAlerts = false'等应该驻留在循环之外。 – brettdj 2013-05-02 02:33:21
Per @ KenWhite的评论,是的,你必须在删除时向后循环,否则你最终会遇到一个超出界限的“i” - 如果你删除了一个工作表,你将永远无法访问'.Worksheets.Count'因为那个时候,'Sheets'集合中不再存在该表单索引。否则,您可以为每个wksheet循环执行一次'',并根据该表的'.Name'进行删除。 – 2013-05-02 02:49:45