foreach (Excel.Worksheet sheet in m_objExcel.Sheets)
{
if (sheet.Name == "Before & After Lube Weight")
{
//sheet.Delete();
(Excel.Worksheet)m_objExcel.Sheets[6]).Delete();
m_objSheet = (Excel.Worksheet)m_objSheets.Add(m_objSheets[6], Type.Missing, Type.Missing, Type.Missing);
m_objSheet.Name = "Before & After Lube Weight";
}
}
上面的代码用于使用新工作表覆盖现有工作表。我尝试逐行调试,所有代码都运行良好,但在添加另一个具有相同名称的工作表(Noted Framework 2.0)之前,工作表永远不会被删除。
发生异常消息
错误:不能将表格重新命名为另一张相同的名称
我认为这是因为之前的工作表没有被正确删除。
答案 0 :(得分:0)
您当前的解决方案对我来说似乎效率低下......听起来您正在尝试做的就是清除您的表单....
尝试删除Cells
...
foreach (Excel.Worksheet sheet in m_objExcel.Sheets)
{
if (sheet.Name == "Before & After Lube Weight")
{
sheet.Cells.Delete();
}
}
如果仍然存在,您想要删除您的工作表,请记住这是一个糟糕的方法......
(Excel.Worksheet)m_objExcel.Sheets[6]).Delete();
如果您使用此方法删除工作表,则无需迭代集合。如果添加或删除了某些工作表,您的馆藏索引可能会发生变化,因此您怀疑的第6张可能不再存在等等......
正确的方法是(不确定为什么它在您的代码中被注释)
sheet.Delete();